{
  "contractName": "FundingVault",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "funder",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "arbitratorExtraData",
      "outputs": [
        {
          "name": "",
          "type": "bytes"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "claimToWithdrawTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputeID",
          "type": "uint256"
        },
        {
          "name": "_ruling",
          "type": "uint256"
        }
      ],
      "name": "rule",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "arbitrator",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "timeout",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "team",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "additionalTimeToWithdraw",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "milestones",
      "outputs": [
        {
          "name": "amount",
          "type": "uint256"
        },
        {
          "name": "amountClaimed",
          "type": "uint256"
        },
        {
          "name": "claimTime",
          "type": "uint256"
        },
        {
          "name": "disputed",
          "type": "bool"
        },
        {
          "name": "feeTeam",
          "type": "uint256"
        },
        {
          "name": "feeHolders",
          "type": "uint256"
        },
        {
          "name": "voteToken",
          "type": "address"
        },
        {
          "name": "disputeID",
          "type": "uint256"
        },
        {
          "name": "lastTotalFeePayment",
          "type": "uint256"
        },
        {
          "name": "lastTotalFeePaymentIsTeam",
          "type": "bool"
        },
        {
          "name": "payerForHolders",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "disputeIDToMilstoneID",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "disputeThreshold",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_arbitrator",
          "type": "address"
        },
        {
          "name": "_arbitratorExtraData",
          "type": "bytes"
        },
        {
          "name": "_team",
          "type": "address"
        },
        {
          "name": "_token",
          "type": "address"
        },
        {
          "name": "_funder",
          "type": "address"
        },
        {
          "name": "_disputeThreshold",
          "type": "uint256"
        },
        {
          "name": "_claimToWithdrawTime",
          "type": "uint256"
        },
        {
          "name": "_additionalTimeToWithdraw",
          "type": "uint256"
        },
        {
          "name": "_timeout",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_metaEvidenceID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_evidence",
          "type": "string"
        }
      ],
      "name": "MetaEvidence",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_arbitrator",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_disputeID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_metaEvidenceID",
          "type": "uint256"
        }
      ],
      "name": "Dispute",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_arbitrator",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_disputeID",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_party",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_evidence",
          "type": "string"
        }
      ],
      "name": "Evidence",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_arbitrator",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_disputeID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_ruling",
          "type": "uint256"
        }
      ],
      "name": "Ruling",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "fundMilestone",
      "outputs": [
        {
          "name": "milestoneID",
          "type": "uint256"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_milestoneID",
          "type": "uint256"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "claimMilestone",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_milestoneID",
          "type": "uint256"
        }
      ],
      "name": "makeVoteToken",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_milestoneID",
          "type": "uint256"
        }
      ],
      "name": "payDisputeFeeByHolders",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_milestoneID",
          "type": "uint256"
        }
      ],
      "name": "payDisputeFeeByTeam",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_milestoneID",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_milestoneID",
          "type": "uint256"
        }
      ],
      "name": "timeoutByTeam",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_milestoneID",
          "type": "uint256"
        }
      ],
      "name": "timeoutByHolders",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_milestoneID",
          "type": "uint256"
        }
      ],
      "name": "appeal",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newTeam",
          "type": "address"
        }
      ],
      "name": "changeTeam",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b50604051620028c8380380620028c88339810160409081528151602080840151928401516060850151608086015160a087015160c088015160e08901516101008a015160008054600160a060020a031916600160a060020a038b1617905598909901805197999098959794969395929491939092918a918a916200009c916001919084019062000329565b505060028054600160a060020a0319908116600160a060020a039a8b1617909155600380548216988a169890981790975550600480548716958816959095179094556005929092556006556007556008556040805161016081018252600080825260208201818152928201818152606083018281526080840183815260a0850184815260c0860185815260e087018681526101008089018881526101208a018981526101408b018a8152600980546001810182559b529a517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af600a8c02908101919091559b517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b08d015597517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b18c015595517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b28b01805460ff1990811692151592909217905594517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b38b015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b48a015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b589018054909a16908b161790985596517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b687015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b786015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b8909401805493519382169415159490941761010060a860020a03191692909516909302179055600b55600c8054909116905550620003ce9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200036c57805160ff19168380011785556200039c565b828001600101855582156200039c579182015b828111156200039c5782518255916020019190600101906200037f565b50620003aa929150620003ae565b5090565b620003cb91905b80821115620003aa5760008155600101620003b5565b90565b6124ea80620003de6000396000f30060806040526004361061010e5763ffffffff60e060020a600035041663041ae88081146101135780630c7ac7b61461014457806323a2f561146101ce5780632e1a7d4d146101f5578063311a6c561461020f5780633c804a901461022a57806340d9f30a146102425780635355e2211461024a5780636cc6cde11461026b5780636f75449f1461028057806370dea79a1461028b5780637e69b7b0146102a057806385f2aef2146102ab5780638948b32a146102c0578063a5fcd0f6146102d5578063c266aef7146102ed578063e41eb7d414610308578063e89e4ed614610313578063e8a1814514610396578063f37e7672146103ae578063f55ea75f146103c3578063fc0c546a146103db575b600080fd5b34801561011f57600080fd5b506101286103f0565b60408051600160a060020a039092168252519081900360200190f35b34801561015057600080fd5b506101596103ff565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019357818101518382015260200161017b565b50505050905090810190601f1680156101c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101da57600080fd5b506101e361048c565b60408051918252519081900360200190f35b34801561020157600080fd5b5061020d600435610492565b005b34801561021b57600080fd5b5061020d600435602435610931565b34801561023657600080fd5b5061020d6004356109fe565b6101e3610bda565b34801561025657600080fd5b5061020d600160a060020a0360043516610e86565b34801561027757600080fd5b50610128610f70565b61020d600435610f7f565b34801561029757600080fd5b506101e36113b1565b61020d6004356113b7565b3480156102b757600080fd5b506101286114dd565b3480156102cc57600080fd5b506101e36114ec565b3480156102e157600080fd5b5061020d6004356114f2565b3480156102f957600080fd5b5061020d600435602435611755565b61020d60043561192f565b34801561031f57600080fd5b5061032b600435611d93565b604080519b8c5260208c019a909a528a8a019890985295151560608a0152608089019490945260a0880192909252600160a060020a0390811660c088015260e08701919091526101008601919091529015156101208501521661014083015251908190036101600190f35b3480156103a257600080fd5b506101e3600435611e0d565b3480156103ba57600080fd5b506101e3611e1f565b3480156103cf57600080fd5b5061020d600435611e25565b3480156103e757600080fd5b50610128611fcb565b600454600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104845780601f1061045957610100808354040283529160200191610484565b820191906000526020600020905b81548152906001019060200180831161046757829003601f168201915b505050505081565b60065481565b60008180600b5414151515610517576040805160e560020a62461bcd02815260206004820152602960248201527f4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d60448201527f696c6573746f6e652e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600980548490811061052557fe5b60009182526020909120600254600a909202019250600160a060020a03163314610587576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600382015460ff16156105e4576040805160e560020a62461bcd02815260206004820152601d60248201527f4d696c6573746f6e652063616e6e6f742062652064697370757465642e000000604482015290519081900360640190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050506040513d602081101561067157600080fd5b50516005540281151561068057fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b505050506040513d602081101561070057600080fd5b505110610745576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b8160060160009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b505160068301546040805160e060020a6370a0823102815230600482015290516103e890930292600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561081f57600080fd5b505af1158015610833573d6000803e3d6000fd5b505050506040513d602081101561084957600080fd5b50516007540281151561085857fe5b0460065401826002015442031115156108bb576040805160e560020a62461bcd02815260206004820152601e60248201527f54696d65206c696d697420686173206e6f7420706173736564207965742e0000604482015290519081900360640190fd5b600254600583015460048401546001850154604051600160a060020a0390941693910190910180156108fc02916000818181858888f19350505050158015610907573d6000803e3d6000fd5b50506001810180548254038255600090819055600282018190556004820181905560059091015550565b600054600160a060020a031633146109b9576040805160e560020a62461bcd02815260206004820152602560248201527f43616e206f6e6c792062652063616c6c6564206279207468652061726269747260448201527f61746f722e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b604080518281529051839133917f394027a5fa6e098a1191094d1719d6929b9abc535fcc0c8f448d6a4e756222769181900360200190a36109fa8282611fda565b5050565b6000600982815481101515610a0f57fe5b60009182526020909120600254600a909202019150600160a060020a03163314610a71576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600981015460ff161515610acf576040805160e560020a62461bcd02815260206004820152601c60248201527f5465616d207761736e277420746865206c61737420746f207061792e00000000604482015290519081900360640190fd5b6008805490820154420311610b2e576040805160e560020a62461bcd02815260206004820152601760248201527f54696d656f757420686173206e6f74207061737365642e000000000000000000604482015290519081900360640190fd5b600254600582015460048301546001840154604051600160a060020a0390941693910190910180156108fc02916000818181858888f19350505050158015610b7a573d6000803e3d6000fd5b506001810180548254038255600090819055600282018190556004820181905560058201819055600682018054600160a060020a03191690556008820155600901805474ffffffffffffffffffffffffffffffffffffffffff1916905550565b600454600090600160a060020a03163314610c3f576040805160e560020a62461bcd02815260206004820152601e60248201527f5468652063616c6c6572206d757374206265207468652066756e6465722e0000604482015290519081900360640190fd5b506040805161016081018252348152600060208201818152928201818152606083018281526080840183815260a0850184815260c0860185815260e087018681526101008089018881526101208a018981526101408b018a8152600980546001810182559b529a517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af600a8c02908101919091559b517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b08d015597517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b18c015595517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b28b01805460ff1990811692151592909217905594517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b38b015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b48a015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b589018054600160a060020a031916600160a060020a0392831617905590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b689015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b788015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b890960180549551959091169515159590951774ffffffffffffffffffffffffffffffffffffffff0019169316029190911790915590565b600454600160a060020a03163314610ee8576040805160e560020a62461bcd02815260206004820152601e60248201527f5468652063616c6c6572206d757374206265207468652066756e6465722e0000604482015290519081900360640190fd5b600c5460ff161515610f44576040805160e560020a62461bcd02815260206004820152601e60248201527f4368616e67696e67207465616d73206973206e6f7420616c6c6f7765642e0000604482015290519081900360640190fd5b60028054600160a060020a031916600160a060020a0392909216919091179055600c805460ff19169055565b600054600160a060020a031681565b600080600983815481101515610f9157fe5b6000918252602080832092546040517ff7434ea9000000000000000000000000000000000000000000000000000000008152600481019283526001805460026000198284161561010002019091160460248301819052600a9095029095019650600160a060020a039091169363f7434ea99390929182916044909101908490801561105d5780601f106110325761010080835404028352916020019161105d565b820191906000526020600020905b81548152906001019060200180831161104057829003601f168201915b505092505050602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d60208110156110a757600080fd5b5051600254909150600160a060020a031633146110fc576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600382015460ff161561117f576040805160e560020a62461bcd02815260206004820152602960248201527f546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792060448201527f64697370757465642e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b1580156111e257600080fd5b505af11580156111f6573d6000803e3d6000fd5b505050506040513d602081101561120c57600080fd5b50516005540281151561121b57fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b505050506040513d602081101561129b57600080fd5b505110156112e1576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b6004820154340181111561133f576040805160e560020a62461bcd02815260206004820152601f60248201527f4e6f7420656e6f75676820666565732068617665206265656e20706169642e00604482015290519081900360640190fd5b60048201805434019055600582015481116113635761135e8382612317565b6113ac565b600882015415156113885742600883015560098201805460ff191660011790556113ac565b600982015460ff1615156113ac5760098201805460ff191660011790554260088301555b505050565b60085481565b60006009828154811015156113c857fe5b60009182526020822091546007600a90920290920190810154604080517f49912f8800000000000000000000000000000000000000000000000000000000815260048101838152602482019283526001805460026000198284161561010002019091160460448401819052959750600160a060020a03909616956349912f8895349594919360640190849080156114a05780601f10611475576101008083540402835291602001916114a0565b820191906000526020600020905b81548152906001019060200180831161148357829003601f168201915b505093505050506000604051808303818588803b1580156114c057600080fd5b505af11580156114d4573d6000803e3d6000fd5b50505050505050565b600254600160a060020a031681565b60075481565b600060098281548110151561150357fe5b90600052602060002090600a0201905081600b5414151561159f576002810154151561159f576040805160e560020a62461bcd02815260206004820152602a60248201527f546865206d696c6573746f6e65206d75737420626520636c61696d656420627960448201527f20746865207465616d2e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006810154600160a060020a031615611602576040805160e560020a62461bcd02815260206004820181905260248201527f54686520746f6b656e2068617320616c7265616479206265656e206d6164652e604482015290519081900360640190fd5b600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691636638c08791839163313ce567916004808201926020929091908290030181600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b505050506040513d602081101561169457600080fd5b50516040805160e060020a63ffffffff851602815260ff90921660248301524360648301526001608483015260a06004830152600060a4830181905260e0604484015260e483018190529051610124808401936020939083900390910190829087803b15801561170357600080fd5b505af1158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b50516006919091018054600160a060020a031916600160a060020a0390921691909117905550565b60008280600b54141515156117da576040805160e560020a62461bcd02815260206004820152602960248201527f4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d60448201527f696c6573746f6e652e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60098054859081106117e857fe5b60009182526020909120600254600a909202019250600160a060020a0316331461184a576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b6002820154156118ca576040805160e560020a62461bcd02815260206004820152602e60248201527f43616e6e6f742062652063616c6c6564207768656e206f7468657220636c616960448201527f6d7320617265206163746976652e000000000000000000000000000000000000606482015290519081900360840190fd5b8154831015611923576040805160e560020a62461bcd02815260206004820152600560248201527f544f444f2e000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50426002909101555050565b60008060098381548110151561194157fe5b6000918252602080832092546040517ff7434ea9000000000000000000000000000000000000000000000000000000008152600481019283526001805460026000198284161561010002019091160460248301819052600a9095029095019650600160a060020a039091169363f7434ea993909291829160449091019084908015611a0d5780601f106119e257610100808354040283529160200191611a0d565b820191906000526020600020905b8154815290600101906020018083116119f057829003601f168201915b505092505050602060405180830381600087803b158015611a2d57600080fd5b505af1158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b5051600383015490915060ff1615611adf576040805160e560020a62461bcd02815260206004820152602960248201527f546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792060448201527f64697370757465642e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b158015611b4257600080fd5b505af1158015611b56573d6000803e3d6000fd5b505050506040513d6020811015611b6c57600080fd5b505160055402811515611b7b57fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b158015611bd157600080fd5b505af1158015611be5573d6000803e3d6000fd5b505050506040513d6020811015611bfb57600080fd5b50511015611c41576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b60058201548111611c9c576040805160e560020a62461bcd02815260206004820152601f60248201527f466565732068617665206e6f74206265656e2070616964206265666f72652e00604482015290519081900360640190fd5b60058201543401811115611cfa576040805160e560020a62461bcd02815260206004820152601f60248201527f4e6f7420656e6f75676820666565732068617665206265656e20706169642e00604482015290519081900360640190fd5b6005820180543401905560098201546101009004600160a060020a03161515611d445760098201805474ffffffffffffffffffffffffffffffffffffffff00191633610100021790555b60048201548111611d595761135e8382612317565b60088201541515611d6f574260088301556113ac565b600982015460ff16156113ac5760098201805460ff19169055426008830155505050565b6009805482908110611da157fe5b60009182526020909120600a909102018054600182015460028301546003840154600485015460058601546006870154600788015460088901546009909901549799509597949660ff9485169693959294600160a060020a03928316949392908216916101009004168b565b600a6020526000908152604090205481565b60055481565b6000600982815481101515611e3657fe5b60009182526020909120600a90910201600981015490915060ff1615611ea6576040805160e560020a62461bcd02815260206004820152601c60248201527f5465616d207761736e277420746865206c61737420746f207061792e00000000604482015290519081900360640190fd5b6008805490820154420311611f05576040805160e560020a62461bcd02815260206004820152601760248201527f54696d656f757420686173206e6f74207061737365642e000000000000000000604482015290519081900360640190fd5b600981015460058201546004830154604051600160a060020a036101009094049390931692910180156108fc02916000818181858888f19350505050158015611f52573d6000803e3d6000fd5b50600060018083018290556002830182905560038301805460ff199081169091556004840183905560058401839055600684018054600160a060020a031916905560088401929092556009909201805474ffffffffffffffffffffffffffffffffffffffff0019169055600c8054909116909117905550565b600354600160a060020a031681565b6000828152600a6020526040812054600980548392908110611ff857fe5b90600052602060002090600a020191506103e88260060160009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b50516005540281151561209957fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b1580156120ef57600080fd5b505af1158015612103573d6000803e3d6000fd5b505050506040513d602081101561211957600080fd5b5051101561215f576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b506000838152600a6020526040902054600183141561223a57600254600583015460048401546001850154604051600160a060020a0390941693910190910180156108fc02916000818181858888f193505050501580156121c4573d6000803e3d6000fd5b5060018201805483540383556000908190556002830181905560038301805460ff191690556004830181905560058301819055600683018054600160a060020a031916905560078301819055600883015560098201805474ffffffffffffffffffffffffffffffffffffffffff19169055612311565b600283141561231157600982015460058301546004840154604051600160a060020a036101009094049390931692910180156108fc02916000818181858888f19350505050158015612290573d6000803e3d6000fd5b506000600183018190556002830181905560038301805460ff191690556004830181905560058301819055600683018054600160a060020a031916905560078301819055600883015560098201805474ffffffffffffffffffffffffffffffffffffffffff19169055600b5481141561231157600c805460ff191660011790555b50505050565b600060098381548110151561232857fe5b6000918252602082206003600a90920201908101805460ff191660019081179091556004808301805487900390559254604080517fc13517e100000000000000000000000000000000000000000000000000000000815260029581018681526024820192835284548086161561010002600019011687900460448301819052959750600160a060020a039093169563c13517e195909493929160640190849080156124145780601f106123e957610100808354040283529160200191612414565b820191906000526020600020905b8154815290600101906020018083116123f757829003601f168201915b50509350505050602060405180830381600087803b15801561243557600080fd5b505af1158015612449573d6000803e3d6000fd5b505050506040513d602081101561245f57600080fd5b505160079091018190556000908152600a602052604090209190915550560043616e206f6e6c792062652063616c6c656420627920746865207465616d2e004e6f7420656e6f75676820766f7465732e000000000000000000000000000000a165627a7a7230582005190b6860b154aa4c304afcace9614c3e3a5398c8ce0e0c03388719d2b7507a0029",
  "deployedBytecode": "0x60806040526004361061010e5763ffffffff60e060020a600035041663041ae88081146101135780630c7ac7b61461014457806323a2f561146101ce5780632e1a7d4d146101f5578063311a6c561461020f5780633c804a901461022a57806340d9f30a146102425780635355e2211461024a5780636cc6cde11461026b5780636f75449f1461028057806370dea79a1461028b5780637e69b7b0146102a057806385f2aef2146102ab5780638948b32a146102c0578063a5fcd0f6146102d5578063c266aef7146102ed578063e41eb7d414610308578063e89e4ed614610313578063e8a1814514610396578063f37e7672146103ae578063f55ea75f146103c3578063fc0c546a146103db575b600080fd5b34801561011f57600080fd5b506101286103f0565b60408051600160a060020a039092168252519081900360200190f35b34801561015057600080fd5b506101596103ff565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019357818101518382015260200161017b565b50505050905090810190601f1680156101c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101da57600080fd5b506101e361048c565b60408051918252519081900360200190f35b34801561020157600080fd5b5061020d600435610492565b005b34801561021b57600080fd5b5061020d600435602435610931565b34801561023657600080fd5b5061020d6004356109fe565b6101e3610bda565b34801561025657600080fd5b5061020d600160a060020a0360043516610e86565b34801561027757600080fd5b50610128610f70565b61020d600435610f7f565b34801561029757600080fd5b506101e36113b1565b61020d6004356113b7565b3480156102b757600080fd5b506101286114dd565b3480156102cc57600080fd5b506101e36114ec565b3480156102e157600080fd5b5061020d6004356114f2565b3480156102f957600080fd5b5061020d600435602435611755565b61020d60043561192f565b34801561031f57600080fd5b5061032b600435611d93565b604080519b8c5260208c019a909a528a8a019890985295151560608a0152608089019490945260a0880192909252600160a060020a0390811660c088015260e08701919091526101008601919091529015156101208501521661014083015251908190036101600190f35b3480156103a257600080fd5b506101e3600435611e0d565b3480156103ba57600080fd5b506101e3611e1f565b3480156103cf57600080fd5b5061020d600435611e25565b3480156103e757600080fd5b50610128611fcb565b600454600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104845780601f1061045957610100808354040283529160200191610484565b820191906000526020600020905b81548152906001019060200180831161046757829003601f168201915b505050505081565b60065481565b60008180600b5414151515610517576040805160e560020a62461bcd02815260206004820152602960248201527f4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d60448201527f696c6573746f6e652e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600980548490811061052557fe5b60009182526020909120600254600a909202019250600160a060020a03163314610587576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600382015460ff16156105e4576040805160e560020a62461bcd02815260206004820152601d60248201527f4d696c6573746f6e652063616e6e6f742062652064697370757465642e000000604482015290519081900360640190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050506040513d602081101561067157600080fd5b50516005540281151561068057fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b505050506040513d602081101561070057600080fd5b505110610745576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b8160060160009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b505160068301546040805160e060020a6370a0823102815230600482015290516103e890930292600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561081f57600080fd5b505af1158015610833573d6000803e3d6000fd5b505050506040513d602081101561084957600080fd5b50516007540281151561085857fe5b0460065401826002015442031115156108bb576040805160e560020a62461bcd02815260206004820152601e60248201527f54696d65206c696d697420686173206e6f7420706173736564207965742e0000604482015290519081900360640190fd5b600254600583015460048401546001850154604051600160a060020a0390941693910190910180156108fc02916000818181858888f19350505050158015610907573d6000803e3d6000fd5b50506001810180548254038255600090819055600282018190556004820181905560059091015550565b600054600160a060020a031633146109b9576040805160e560020a62461bcd02815260206004820152602560248201527f43616e206f6e6c792062652063616c6c6564206279207468652061726269747260448201527f61746f722e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b604080518281529051839133917f394027a5fa6e098a1191094d1719d6929b9abc535fcc0c8f448d6a4e756222769181900360200190a36109fa8282611fda565b5050565b6000600982815481101515610a0f57fe5b60009182526020909120600254600a909202019150600160a060020a03163314610a71576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600981015460ff161515610acf576040805160e560020a62461bcd02815260206004820152601c60248201527f5465616d207761736e277420746865206c61737420746f207061792e00000000604482015290519081900360640190fd5b6008805490820154420311610b2e576040805160e560020a62461bcd02815260206004820152601760248201527f54696d656f757420686173206e6f74207061737365642e000000000000000000604482015290519081900360640190fd5b600254600582015460048301546001840154604051600160a060020a0390941693910190910180156108fc02916000818181858888f19350505050158015610b7a573d6000803e3d6000fd5b506001810180548254038255600090819055600282018190556004820181905560058201819055600682018054600160a060020a03191690556008820155600901805474ffffffffffffffffffffffffffffffffffffffffff1916905550565b600454600090600160a060020a03163314610c3f576040805160e560020a62461bcd02815260206004820152601e60248201527f5468652063616c6c6572206d757374206265207468652066756e6465722e0000604482015290519081900360640190fd5b506040805161016081018252348152600060208201818152928201818152606083018281526080840183815260a0850184815260c0860185815260e087018681526101008089018881526101208a018981526101408b018a8152600980546001810182559b529a517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af600a8c02908101919091559b517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b08d015597517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b18c015595517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b28b01805460ff1990811692151592909217905594517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b38b015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b48a015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b589018054600160a060020a031916600160a060020a0392831617905590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b689015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b788015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b890960180549551959091169515159590951774ffffffffffffffffffffffffffffffffffffffff0019169316029190911790915590565b600454600160a060020a03163314610ee8576040805160e560020a62461bcd02815260206004820152601e60248201527f5468652063616c6c6572206d757374206265207468652066756e6465722e0000604482015290519081900360640190fd5b600c5460ff161515610f44576040805160e560020a62461bcd02815260206004820152601e60248201527f4368616e67696e67207465616d73206973206e6f7420616c6c6f7765642e0000604482015290519081900360640190fd5b60028054600160a060020a031916600160a060020a0392909216919091179055600c805460ff19169055565b600054600160a060020a031681565b600080600983815481101515610f9157fe5b6000918252602080832092546040517ff7434ea9000000000000000000000000000000000000000000000000000000008152600481019283526001805460026000198284161561010002019091160460248301819052600a9095029095019650600160a060020a039091169363f7434ea99390929182916044909101908490801561105d5780601f106110325761010080835404028352916020019161105d565b820191906000526020600020905b81548152906001019060200180831161104057829003601f168201915b505092505050602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d60208110156110a757600080fd5b5051600254909150600160a060020a031633146110fc576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600382015460ff161561117f576040805160e560020a62461bcd02815260206004820152602960248201527f546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792060448201527f64697370757465642e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b1580156111e257600080fd5b505af11580156111f6573d6000803e3d6000fd5b505050506040513d602081101561120c57600080fd5b50516005540281151561121b57fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b505050506040513d602081101561129b57600080fd5b505110156112e1576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b6004820154340181111561133f576040805160e560020a62461bcd02815260206004820152601f60248201527f4e6f7420656e6f75676820666565732068617665206265656e20706169642e00604482015290519081900360640190fd5b60048201805434019055600582015481116113635761135e8382612317565b6113ac565b600882015415156113885742600883015560098201805460ff191660011790556113ac565b600982015460ff1615156113ac5760098201805460ff191660011790554260088301555b505050565b60085481565b60006009828154811015156113c857fe5b60009182526020822091546007600a90920290920190810154604080517f49912f8800000000000000000000000000000000000000000000000000000000815260048101838152602482019283526001805460026000198284161561010002019091160460448401819052959750600160a060020a03909616956349912f8895349594919360640190849080156114a05780601f10611475576101008083540402835291602001916114a0565b820191906000526020600020905b81548152906001019060200180831161148357829003601f168201915b505093505050506000604051808303818588803b1580156114c057600080fd5b505af11580156114d4573d6000803e3d6000fd5b50505050505050565b600254600160a060020a031681565b60075481565b600060098281548110151561150357fe5b90600052602060002090600a0201905081600b5414151561159f576002810154151561159f576040805160e560020a62461bcd02815260206004820152602a60248201527f546865206d696c6573746f6e65206d75737420626520636c61696d656420627960448201527f20746865207465616d2e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006810154600160a060020a031615611602576040805160e560020a62461bcd02815260206004820181905260248201527f54686520746f6b656e2068617320616c7265616479206265656e206d6164652e604482015290519081900360640190fd5b600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691636638c08791839163313ce567916004808201926020929091908290030181600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b505050506040513d602081101561169457600080fd5b50516040805160e060020a63ffffffff851602815260ff90921660248301524360648301526001608483015260a06004830152600060a4830181905260e0604484015260e483018190529051610124808401936020939083900390910190829087803b15801561170357600080fd5b505af1158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b50516006919091018054600160a060020a031916600160a060020a0390921691909117905550565b60008280600b54141515156117da576040805160e560020a62461bcd02815260206004820152602960248201527f4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d60448201527f696c6573746f6e652e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60098054859081106117e857fe5b60009182526020909120600254600a909202019250600160a060020a0316331461184a576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b6002820154156118ca576040805160e560020a62461bcd02815260206004820152602e60248201527f43616e6e6f742062652063616c6c6564207768656e206f7468657220636c616960448201527f6d7320617265206163746976652e000000000000000000000000000000000000606482015290519081900360840190fd5b8154831015611923576040805160e560020a62461bcd02815260206004820152600560248201527f544f444f2e000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50426002909101555050565b60008060098381548110151561194157fe5b6000918252602080832092546040517ff7434ea9000000000000000000000000000000000000000000000000000000008152600481019283526001805460026000198284161561010002019091160460248301819052600a9095029095019650600160a060020a039091169363f7434ea993909291829160449091019084908015611a0d5780601f106119e257610100808354040283529160200191611a0d565b820191906000526020600020905b8154815290600101906020018083116119f057829003601f168201915b505092505050602060405180830381600087803b158015611a2d57600080fd5b505af1158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b5051600383015490915060ff1615611adf576040805160e560020a62461bcd02815260206004820152602960248201527f546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792060448201527f64697370757465642e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b158015611b4257600080fd5b505af1158015611b56573d6000803e3d6000fd5b505050506040513d6020811015611b6c57600080fd5b505160055402811515611b7b57fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b158015611bd157600080fd5b505af1158015611be5573d6000803e3d6000fd5b505050506040513d6020811015611bfb57600080fd5b50511015611c41576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b60058201548111611c9c576040805160e560020a62461bcd02815260206004820152601f60248201527f466565732068617665206e6f74206265656e2070616964206265666f72652e00604482015290519081900360640190fd5b60058201543401811115611cfa576040805160e560020a62461bcd02815260206004820152601f60248201527f4e6f7420656e6f75676820666565732068617665206265656e20706169642e00604482015290519081900360640190fd5b6005820180543401905560098201546101009004600160a060020a03161515611d445760098201805474ffffffffffffffffffffffffffffffffffffffff00191633610100021790555b60048201548111611d595761135e8382612317565b60088201541515611d6f574260088301556113ac565b600982015460ff16156113ac5760098201805460ff19169055426008830155505050565b6009805482908110611da157fe5b60009182526020909120600a909102018054600182015460028301546003840154600485015460058601546006870154600788015460088901546009909901549799509597949660ff9485169693959294600160a060020a03928316949392908216916101009004168b565b600a6020526000908152604090205481565b60055481565b6000600982815481101515611e3657fe5b60009182526020909120600a90910201600981015490915060ff1615611ea6576040805160e560020a62461bcd02815260206004820152601c60248201527f5465616d207761736e277420746865206c61737420746f207061792e00000000604482015290519081900360640190fd5b6008805490820154420311611f05576040805160e560020a62461bcd02815260206004820152601760248201527f54696d656f757420686173206e6f74207061737365642e000000000000000000604482015290519081900360640190fd5b600981015460058201546004830154604051600160a060020a036101009094049390931692910180156108fc02916000818181858888f19350505050158015611f52573d6000803e3d6000fd5b50600060018083018290556002830182905560038301805460ff199081169091556004840183905560058401839055600684018054600160a060020a031916905560088401929092556009909201805474ffffffffffffffffffffffffffffffffffffffff0019169055600c8054909116909117905550565b600354600160a060020a031681565b6000828152600a6020526040812054600980548392908110611ff857fe5b90600052602060002090600a020191506103e88260060160009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b50516005540281151561209957fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b1580156120ef57600080fd5b505af1158015612103573d6000803e3d6000fd5b505050506040513d602081101561211957600080fd5b5051101561215f576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b506000838152600a6020526040902054600183141561223a57600254600583015460048401546001850154604051600160a060020a0390941693910190910180156108fc02916000818181858888f193505050501580156121c4573d6000803e3d6000fd5b5060018201805483540383556000908190556002830181905560038301805460ff191690556004830181905560058301819055600683018054600160a060020a031916905560078301819055600883015560098201805474ffffffffffffffffffffffffffffffffffffffffff19169055612311565b600283141561231157600982015460058301546004840154604051600160a060020a036101009094049390931692910180156108fc02916000818181858888f19350505050158015612290573d6000803e3d6000fd5b506000600183018190556002830181905560038301805460ff191690556004830181905560058301819055600683018054600160a060020a031916905560078301819055600883015560098201805474ffffffffffffffffffffffffffffffffffffffffff19169055600b5481141561231157600c805460ff191660011790555b50505050565b600060098381548110151561232857fe5b6000918252602082206003600a90920201908101805460ff191660019081179091556004808301805487900390559254604080517fc13517e100000000000000000000000000000000000000000000000000000000815260029581018681526024820192835284548086161561010002600019011687900460448301819052959750600160a060020a039093169563c13517e195909493929160640190849080156124145780601f106123e957610100808354040283529160200191612414565b820191906000526020600020905b8154815290600101906020018083116123f757829003601f168201915b50509350505050602060405180830381600087803b15801561243557600080fd5b505af1158015612449573d6000803e3d6000fd5b505050506040513d602081101561245f57600080fd5b505160079091018190556000908152600a602052604090209190915550560043616e206f6e6c792062652063616c6c656420627920746865207465616d2e004e6f7420656e6f75676820766f7465732e000000000000000000000000000000a165627a7a7230582005190b6860b154aa4c304afcace9614c3e3a5398c8ce0e0c03388719d2b7507a0029",
  "sourceMap": "1116:16363:5:-;;;3599:1144;8:9:-1;5:2;;;30:1;27;20:12;5:2;3599:1144:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2848:10:2;:24;;-1:-1:-1;;;;;;2848:24:2;-1:-1:-1;;;;;2848:24:2;;;;;3599:1144:5;;;;2882:42:2;;3599:1144:5;;;;;;;;;;;;;;;;;;;;;2882:42:2;;-1:-1:-1;;2882:42:2;;;;;:::i;:::-;-1:-1:-1;;3949:4:5;:12;;-1:-1:-1;;;;;;3949:12:5;;;-1:-1:-1;;;;;3949:12:5;;;;;;;3971:5;:27;;;;;;;;;;;;;;-1:-1:-1;4008:6:5;:16;;;;;;;;;;;;;;4034;:36;;;;4080:19;:42;4132:24;:52;4194:7;:18;4249:453;;;;;;;;-1:-1:-1;4249:453:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3949:12;4249:453;;;;;;;;;;;;;;;;;;4233:10;27::-1;;-1:-1;23:18;;45:23;;4233:470:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4233:470:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4233:470:5;;;;;;;;;;;4222:8;:483;4715:13;:21;;;;;;;-1:-1:-1;1116:16363:5;;-1:-1:-1;1116:16363:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:16363:5;;;-1:-1:-1;1116:16363:5;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "1116:16363:5:-;;;;;;;;;-1:-1:-1;;;1116:16363:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1213:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1213:21:5;;;;;;;;-1:-1:-1;;;;;1213:21:5;;;;;;;;;;;;;;691:32:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;691:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;691:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:31:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1274:31:5;;;;;;;;;;;;;;;;;;;;11271:1109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11271:1109:5;;;;;;;3332:182:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3332:182:2;;;;;;;12539:889:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12539:889:5;;;;;4871:547;;;;17197:279;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17197:279:5;-1:-1:-1;;;;;17197:279:5;;;;;657:28:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;657:28:2;;;;9102:1249:5;;;;;;1353:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1353:19:5;;;;14567:207;;;;;;1158:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1158:19:5;;;;1311:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:36:5;;;;6570:531;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6570:531:5;;;;;5901:456;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5901:456:5;;;;;;;7588:1318;;;;;;2303:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2303:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2303:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2338:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2338:50:5;;;;;1240:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1240:28:5;;;;13561:846;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13561:846:5;;;;;1183:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1183:24:5;;;;1213:21;;;-1:-1:-1;;;;;1213:21:5;;:::o;691:32:2:-;;;;;;;;;;;;;;;-1:-1:-1;;691:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1274:31:5:-;;;;:::o;11271:1109::-;11351:27;11327:12;5574;5562:8;;:24;;5554:78;;;;;;;-1:-1:-1;;;;;5554:78:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11381:10;:24;;11392:12;;11381:24;;;;;;;;;;;;;;11437:4;;11381:24;;;;;;-1:-1:-1;;;;;;11437:4:5;11423:10;:18;11415:62;;;;;-1:-1:-1;;;;;11415:62:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11415:62:5;;;;;;;;;;;;;;;11496:18;;;;;;11495:19;11487:61;;;;;-1:-1:-1;;;;;11487:61:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;11635:19;;;;:33;;;;;;;;11672:4;;-1:-1:-1;;;;;11635:19:5;;:31;;:33;;;;;;;;;;;;;;:19;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;11635:33:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11635:33:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11635:33:5;11618:16;;:50;11617:59;;;;;;;11579:19;;;;:35;;;-1:-1:-1;;;;;11579:35:5;;11609:4;11579:35;;;;;;11617:59;;;;;-1:-1:-1;;;;;11579:19:5;;;;:29;;:35;;;;;;;;;;;;;;:19;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;11579:35:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11579:35:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11579:35:5;:97;11558:161;;;;;-1:-1:-1;;;;;11558:161:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11558:161:5;;;;;;;;;;;;;;;11959:9;:19;;;;;;;;;;-1:-1:-1;;;;;11959:19:5;-1:-1:-1;;;;;11959:31:5;;:33;;;;;-1:-1:-1;;;11959:33:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11959:33:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11959:33:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11959:33:5;11912:19;;;;:35;;;-1:-1:-1;;;;;11912:35:5;;11942:4;11912:35;;;;;;11952:4;:40;;;;-1:-1:-1;;;;;11912:19:5;;;;:29;;:35;;;;;11959:33;;11912:35;;;;;;;;:19;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;11912:35:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11912:35:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11912:35:5;11885:24;;:62;11884:109;;;;;;;;11862:19;;:131;11839:9;:19;;;11833:3;:25;11832:161;11759:290;;;;;;;-1:-1:-1;;;;;11759:290:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;12060:4;;12116:20;;;;12098:17;;;;12060:4;12074:23;;;12060:77;;-1:-1:-1;;;;;12060:4:5;;;;12074:41;;:62;;;12060:77;;;;;:4;:77;:4;:77;12074:62;12060:4;:77;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12214:23:5;;;;;12194:43;;;;;:16;12247:27;;;;12284:19;;;:23;;;12317:17;;;:21;;;12348:20;;;;:24;-1:-1:-1;11271:1109:5:o;3332:182:2:-;851:10;;-1:-1:-1;;;;;851:10:2;829;:33;821:83;;;;;-1:-1:-1;;;;;821:83:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3414:49;;;;;;;;3444:10;;3432;;3414:49;;;;;;;;;3474:33;3488:10;3499:7;3474:13;:33::i;:::-;3332:182;;:::o;12539:889:5:-;12598:27;12628:10;12639:12;12628:24;;;;;;;;;;;;;;;;;;12684:4;;12628:24;;;;;;-1:-1:-1;;;;;;12684:4:5;12670:10;:18;12662:62;;;;;-1:-1:-1;;;;;12662:62:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12662:62:5;;;;;;;;;;;;;;;12742:35;;;;;;12734:76;;;;;;;-1:-1:-1;;;;;12734:76:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;12866:7;;;12834:29;;;;12828:3;:35;:45;12820:81;;;;;-1:-1:-1;;;;;12820:81:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;12912:4;;12968:20;;;;12950:17;;;;12912:4;12926:23;;;12912:77;;-1:-1:-1;;;;;12912:4:5;;;;12926:41;;:62;;;12912:77;;;;;:4;:77;:4;:77;12926:62;12912:4;:77;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;13078:23:5;;;;;13058:43;;;;;:16;13111:27;;;;13148:19;;;:23;;;13181:17;;;:21;;;13212:20;;;:24;;;13246:19;;;:38;;-1:-1:-1;;;;;;13246:38:5;;;13294:29;;;:33;13337:35;;:43;;-1:-1:-1;;13390:31:5;;;-1:-1:-1;12539:889:5:o;4871:547::-;4969:6;;4919:16;;-1:-1:-1;;;;;4969:6:5;4955:10;:20;4947:63;;;;;-1:-1:-1;;;;;4947:63:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5044:364:5;;;;;;;;5075:9;5044:364;;-1:-1:-1;5044:364:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5028:10;27::-1;;5410:1:5;23:18:-1;;45:23;;5028:381:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5028:381:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5028:381:5;-1:-1:-1;;;;;5028:381:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5028:381:5;;;;;;;;;;;27:10:-1;4871:547:5:o;17197:279::-;17274:6;;-1:-1:-1;;;;;17274:6:5;17260:10;:20;17252:63;;;;;-1:-1:-1;;;;;17252:63:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;17333:13;;;;17325:56;;;;;;;-1:-1:-1;;;;;17325:56:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;17391:4;:15;;-1:-1:-1;;;;;;17391:15:5;-1:-1:-1;;;;;17391:15:5;;;;;;;;;;17416:13;:21;;-1:-1:-1;;17416:21:5;;;17197:279::o;657:28:2:-;;;-1:-1:-1;;;;;657:28:2;;:::o;9102:1249:5:-;9175:27;9239:20;9205:10;9216:12;9205:24;;;;;;;;;;;;;;;;;;9262:10;;:47;;;;;;;;;;;:10;:47;;;-1:-1:-1;;9262:47:5;;;;:10;:47;;;;;;;;;;;;9205:24;;;;;;;;-1:-1:-1;;;;;;9262:10:5;;;;:26;;:10;;:47;;;;;;;;:10;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9262:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9262:47:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9262:47:5;9341:4;;9262:47;;-1:-1:-1;;;;;;9341:4:5;9327:10;:18;9319:62;;;;;-1:-1:-1;;;;;9319:62:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9319:62:5;;;;;;;;;;;;;;;9400:18;;;;;;9399:19;9391:73;;;;;-1:-1:-1;;;;;9391:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9539:19;;;;:33;;;;;;;;9576:4;;-1:-1:-1;;;;;9539:19:5;;:31;;:33;;;;;;;;;;;;;;:19;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;9539:33:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9539:33:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9539:33:5;9522:16;;:50;9521:59;;;;;;;9482:19;;;;:35;;;-1:-1:-1;;;;;9482:35:5;;9512:4;9482:35;;;;;;9521:59;;;;;-1:-1:-1;;;;;9482:19:5;;;;:29;;:35;;;;;;;;;;;;;;:19;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;9482:35:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9482:35:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9482:35:5;:98;;9474:128;;;;;-1:-1:-1;;;;;9474:128:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9474:128:5;;;;;;;;;;;;;;;9620:17;;;;9640:9;9620:29;:48;-1:-1:-1;9620:48:5;9612:92;;;;;-1:-1:-1;;;;;9612:92:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;9716:17;;;:30;;9737:9;9716:30;;;9760:20;;;;:37;-1:-1:-1;9756:589:5;;9851:43;9865:12;9878:15;9851:13;:43::i;:::-;9756:589;;;9923:29;;;;:32;9919:426;;;10039:3;10007:29;;;:35;10056;;;:42;;-1:-1:-1;;10056:42:5;10094:4;10056:42;;;9919:426;;;10123:35;;;;;;10122:36;10119:226;;;10235:35;;;:42;;-1:-1:-1;;10235:42:5;10273:4;10235:42;;;10327:3;10295:29;;;:35;10119:226;9102:1249;;;:::o;1353:19::-;;;;:::o;14567:207::-;14627:27;14657:10;14668:12;14657:24;;;;;;;;;;;;;;;;;14691:10;;14726:19;14657:24;;;;;;;14726:19;;;;14691:76;;;;;;;;;;;;;;;;;;:10;:76;;;-1:-1:-1;;14691:76:5;;;;:10;:76;;;;;;;;;;;;14657:24;;-1:-1:-1;;;;;;14691:10:5;;;;:17;;14715:9;;14726:19;14691:10;;:76;;;:10;;:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14691:76:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14691:76:5;;;;;14567:207;;:::o;1158:19::-;;;-1:-1:-1;;;;;1158:19:5;;:::o;1311:36::-;;;;:::o;6570:531::-;6629:27;6659:10;6670:12;6659:24;;;;;;;;;;;;;;;;;;;;6629:54;;6795:12;6783:8;;:24;;6779:112;;;6818:19;;;;:24;;6810:79;;;;;-1:-1:-1;;;;;6810:79:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6916:19;;;;-1:-1:-1;;;;;6916:19:5;6908:35;6900:80;;;;;-1:-1:-1;;;;;6900:80:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7025:5;;7052:16;;;;;;;;-1:-1:-1;;;;;7025:5:5;;;;:22;;:5;;7052:14;;:16;;;;;;;;;;;;;;;7025:5;;7052:16;;;5:2:-1;;;;30:1;27;20:12;5:2;7052:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7052:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7052:16:5;7025:68;;;-1:-1:-1;;;7025:68:5;;;;;;;;;;;;;;7074:12;7025:68;;;;7088:4;7025:68;;;;;;;;;-1:-1:-1;7025:68:5;;;;;;;;;;;;;;;;;;;;;;;;7052:16;;7025:68;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;7025:68:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7025:68:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7025:68:5;6991:19;;;;;:103;;-1:-1:-1;;;;;;6991:103:5;-1:-1:-1;;;;;6991:103:5;;;;;;;;;-1:-1:-1;6570:531:5:o;5901:456::-;6001:27;5977:12;5574;5562:8;;:24;;5554:78;;;;;;;-1:-1:-1;;;;;5554:78:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6031:10;:24;;6042:12;;6031:24;;;;;;;;;;;;;;6087:4;;6031:24;;;;;;-1:-1:-1;;;;;;6087:4:5;6073:10;:18;6065:62;;;;;-1:-1:-1;;;;;6065:62:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6065:62:5;;;;;;;;;;;;;;;6145:19;;;;:24;6137:83;;;;;-1:-1:-1;;;;;6137:83:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6277:16;;:27;-1:-1:-1;6277:27:5;6269:45;;;;;-1:-1:-1;;;;;6269:45:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6347:3:5;6325:19;;;;:25;-1:-1:-1;;5901:456:5:o;7588:1318::-;7664:27;7728:20;7694:10;7705:12;7694:24;;;;;;;;;;;;;;;;;;7751:10;;:47;;;;;;;;;;;:10;:47;;;-1:-1:-1;;7751:47:5;;;;:10;:47;;;;;;;;;;;;7694:24;;;;;;;;-1:-1:-1;;;;;;7751:10:5;;;;:26;;:10;;:47;;;;;;;;:10;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7751:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7751:47:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7751:47:5;7817:18;;;;7751:47;;-1:-1:-1;7817:18:5;;7816:19;7808:73;;;;;-1:-1:-1;;;;;7808:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7956:19;;;;:33;;;;;;;;7993:4;;-1:-1:-1;;;;;7956:19:5;;:31;;:33;;;;;;;;;;;;;;:19;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;7956:33:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7956:33:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7956:33:5;7939:16;;:50;7938:59;;;;;;;7899:19;;;;:35;;;-1:-1:-1;;;;;7899:35:5;;7929:4;7899:35;;;;;;7938:59;;;;;-1:-1:-1;;;;;7899:19:5;;;;:29;;:35;;;;;;;;;;;;;;:19;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;7899:35:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7899:35:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7899:35:5;:98;;7891:128;;;;;-1:-1:-1;;;;;7891:128:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7891:128:5;;;;;;;;;;;;;;;8037:20;;;;:38;-1:-1:-1;8029:82:5;;;;;-1:-1:-1;;;;;8029:82:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;8129:20;;;;8152:9;8129:32;:51;-1:-1:-1;8129:51:5;8121:95;;;;;-1:-1:-1;;;;;8121:95:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;8227:20;;;:33;;8251:9;8227:33;;;8275:25;;;;;;;-1:-1:-1;;;;;8275:25:5;:30;8271:82;;;8315:25;;;:38;;-1:-1:-1;;8315:38:5;8343:10;8315:38;;;;;8271:82;8368:17;;;;:34;-1:-1:-1;8364:536:5;;8456:43;8470:12;8483:15;8456:13;:43::i;8364:536::-;8524:29;;;;:32;8520:380;;;8639:3;8607:29;;;:35;8520:380;;;8670:35;;;;;;8667:233;;;8781:35;;;:43;;-1:-1:-1;;8781:43:5;;;8878:3;8846:29;;;:35;7588:1318;;;:::o;2303:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2303:29:5;;;;;;;;;;;;;-1:-1:-1;;;;;2303:29:5;;;;;;;;;;;;;;;:::o;2338:50::-;;;;;;;;;;;;;:::o;1240:28::-;;;;:::o;13561:846::-;13623:27;13653:10;13664:12;13653:24;;;;;;;;;;;;;;;;;;;;;;;13696:35;;;;13653:24;;-1:-1:-1;13696:35:5;;13695:36;13687:77;;;;;-1:-1:-1;;;;;13687:77:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;13820:7;;;13788:29;;;;13782:3;:35;:45;13774:81;;;;;-1:-1:-1;;;;;13774:81:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;13866:25;;;;13919:20;;;;13901:17;;;;13866:74;;-1:-1:-1;;;;;13866:25:5;;;;;;;;;13901:38;;13866:74;;;;;;;;;13901:38;13866:25;:74;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;14025:1:5;13999:23;;;;:27;;;14036:19;;;:23;;;14069:18;;;:26;;-1:-1:-1;;14069:26:5;;;;;;14105:17;;;:21;;;14136:20;;;:24;;;14170:19;;;:38;;-1:-1:-1;;;;;;14170:38:5;;;14218:29;;;:33;;;;14261:25;;;;:31;;-1:-1:-1;;14261:31:5;;;14303:13;:20;;;;;;;;;;-1:-1:-1;13561:846:5:o;1183:24::-;;;-1:-1:-1;;;;;1183:24:5;;:::o;15023:1965::-;15095:27;15136:33;;;:21;:33;;;;;;15125:10;:45;;15095:27;;15136:33;15125:45;;;;;;;;;;;;;;;;15095:75;;15368:4;15331:9;:19;;;;;;;;;;-1:-1:-1;;;;;15331:19:5;-1:-1:-1;;;;;15331:31:5;;:33;;;;;-1:-1:-1;;;15331:33:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15331:33:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15331:33:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15331:33:5;15314:16;;:50;15313:59;;;;;;;15274:19;;;;:35;;;-1:-1:-1;;;;;15274:35:5;;15304:4;15274:35;;;;;;15313:59;;;;;-1:-1:-1;;;;;15274:19:5;;;;:29;;:35;;;;;;;;;;;;;;:19;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;15274:35:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15274:35:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15274:35:5;:98;;15266:128;;;;;-1:-1:-1;;;;;15266:128:5;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15266:128:5;;;;;;;;;;;;;;;-1:-1:-1;15425:33:5;;;;:21;:33;;;;;;2782:1;15472:18;;15468:1514;;;15506:4;;15562:20;;;;15544:17;;;;15506:4;15520:23;;;15506:77;;-1:-1:-1;;;;;15506:4:5;;;;15520:41;;:62;;;15506:77;;;;;:4;:77;:4;:77;15520:62;15506:4;:77;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;15676:23:5;;;;;15656:43;;;;;:16;15713:27;;;;15754:19;;;:23;;;15791:18;;;:26;;-1:-1:-1;;15791:26:5;;;15831:17;;;:21;;;15866:20;;;:24;;;15904:19;;;:38;;-1:-1:-1;;;;;;15904:38:5;;;15956:19;;;:23;;;15993:29;;;:33;16040:35;;;:43;;-1:-1:-1;;16097:31:5;;;15468:1514;;;2819:1;16153:21;;16149:833;;;16194:25;;;;16247:20;;;;16229:17;;;;16194:74;;-1:-1:-1;;;;;16194:25:5;;;;;;;;;16229:38;;16194:74;;;;;;;;;16229:38;16194:25;:74;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;16361:1:5;16335:23;;;:27;;;16380:19;;;:23;;;16421:18;;;:26;;-1:-1:-1;;16421:26:5;;;16465:17;;;:21;;;16504:20;;;:24;;;16546:19;;;:38;;-1:-1:-1;;;;;;16546:38:5;;;16602:19;;;:23;;;16643:29;;;:33;16694:35;;;:43;;-1:-1:-1;;16755:31:5;;;16808:8;;:24;;16804:164;;;16891:13;:20;;-1:-1:-1;;16891:20:5;16907:4;16891:20;;;16804:164;15023:1965;;;;:::o;10537:526::-;10621:27;10651:10;10662:12;10651:24;;;;;;;;;;;;;;;;;10685:18;10651:24;;;;;10685:18;;;:25;;-1:-1:-1;;10685:25:5;10706:4;10685:25;;;;;;10857:17;;;;:37;;;;;;;10926:10;;:63;;;;;;2748:1;10926:63;;;;;;;;;;;;;;;;;;10685:25;10926:63;-1:-1:-1;;10926:63:5;;;;;;;;;;;10651:24;;-1:-1:-1;;;;;;10926:10:5;;;;:24;;2748:1;;10706:4;10926:63;;;;;10706:4;;10926:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10926:63:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10926:63:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10926:63:5;10904:19;;;;:85;;;10999:42;;;;:21;10926:63;10999:42;;;;:57;;;;-1:-1:-1;10537:526:5:o",
  "source": "/**\n*  @title Funding Vault\n*  @author Clément Lesaege - <clement@lesaege.com>\n*  Bug Bounties: This code hasn't undertaken a bug bounty program yet.\n*/\n\npragma solidity ^0.4.15;\n\nimport \"../Arbitrable.sol\";\nimport \"minimetoken/contracts/MiniMeToken.sol\";\n\n/** @title Funding Vault\n*  A contract storing the ETH raised in a crowdfunding event.\n*  Funds are delivered when milestones are reached.\n*  The team can claim a milestone is reached. Token holders will have some time to dispute that claim.\n*  When some token holders vote to dispute the claim, extra time is given to other token holders to dispute that claim.\n*  If a sufficient amount of token holders dispute it. A dispute is created and the arbitrator will decide if the milestone has been reached.\n*  When there is a disagreement a vote token is created. Holders should send the voteToken to the Vault to disagree with the milestone.\n*  Token holders can also claim that the team failed to deliver and ask for the remaining ETH to be given back to a different contract.\n*  This contract can be the vault of another team, or a contract to reimburse.\n*/\ncontract FundingVault is Arbitrable {\n    address public team;\n    MiniMeToken public token;\n    address public funder;\n    uint public disputeThreshold;\n    uint public claimToWithdrawTime;\n    uint public additionalTimeToWithdraw;\n    uint public timeout;\n    struct Milestone {\n        uint amount; // The maximum amount which can be unlocked for this milestone.\n        uint amountClaimed; // The current amount which is claimed.\n        uint claimTime; // The time the current claim was made. Or 0 if it's not currently claimed.\n        bool disputed; // True if a dispute has been raised.\n        uint feeTeam;  // Arbitration fee paid by the team.\n        uint feeHolders; // Arbitration fee paid by token holders.\n        MiniMeToken voteToken; // Forked token which will be used to vote.\n        uint disputeID; // ID of the dispute if this claim is disputed.\n        uint lastTotalFeePayment; // Time of the last total fee payment, useful for timeouts.\n        bool lastTotalFeePaymentIsTeam; // True if the last interaction is from the team.\n        address payerForHolders; // The address who first paid the arbitration fee and will be refunded in case of victory.\n    }\n    Milestone[] public milestones;\n    mapping(uint => uint) public disputeIDToMilstoneID; // Map (disputeID => milestoneID).\n    uint ousterID; //The ID of the milestone created at construction. To be disputed when the funders claim the team is not doing their job.\n    bool canChangeTeam; //True if the holders have attempted an oust and won the dispute. Allows the funder to select a new team (only once).\n\n    uint8 constant AMOUNT_OF_CHOICES = 2;\n    uint8 constant TEAM_WINS = 1;\n    uint8 constant HOLDERS_WINS = 2;\n\n    /** @dev Constructor. Choose the arbitrator.\n    *  @param _arbitrator The arbitrator of the contract.\n    *  @param _team The address of the team who will be able to claim milestone completion.\n    *  @param _token The token whose holders are able to dispute milestone claims.\n    *  @param _funder The party putting funds in the vault.\n    *  @param _disputeThreshold The ‱ of tokens required to dispute a milestone.\n    *  @param _claimToWithdrawTime The base time in seconds after a claim is considered non-disputed (i.e  if no token holders dispute it).\n    *  @param _additionalTimeToWithdraw The time in seconds which is added per ‱ of tokens disputing the claim.\n    *  @param _timeout Maximum time to pay arbitration fees after the other side did.\n    */\n    constructor(\n        Arbitrator _arbitrator,\n        bytes _arbitratorExtraData,\n        address _team,\n        address _token,\n        address _funder,\n        uint _disputeThreshold,\n        uint _claimToWithdrawTime,\n        uint _additionalTimeToWithdraw,\n        uint _timeout\n    ) public Arbitrable(_arbitrator,_arbitratorExtraData) {\n        team = _team;\n        token = MiniMeToken(_token);\n        funder = _funder;\n        disputeThreshold = _disputeThreshold;\n        claimToWithdrawTime = _claimToWithdrawTime;\n        additionalTimeToWithdraw = _additionalTimeToWithdraw;\n        timeout = _timeout;\n        ousterID = milestones.push(Milestone({ //Create a base milestone to be disputed when the funders claim the team is not doing their job.\n            amount:0,\n            amountClaimed:0,\n            claimTime:0,\n            disputed:false,\n            feeTeam:0,\n            feeHolders:0,\n            voteToken:MiniMeToken(0x0),\n            disputeID:0,\n            lastTotalFeePayment:0,\n            lastTotalFeePaymentIsTeam:false,\n            payerForHolders:0x0\n            }))-1;\n        canChangeTeam = false;\n    }\n\n    /** @dev Give the funds for a milestone.\n    *  @return milestoneID The ID of the milestone which was created.\n    */\n    function fundMilestone() public payable returns(uint milestoneID) {\n        require(msg.sender == funder, \"The caller must be the funder.\");\n\n        return milestones.push(Milestone({\n            amount:msg.value,\n            amountClaimed:0,\n            claimTime:0,\n            disputed:false,\n            feeTeam:0,\n            feeHolders:0,\n            voteToken:MiniMeToken(0x0),\n            disputeID:0,\n            lastTotalFeePayment:0,\n            lastTotalFeePaymentIsTeam:false,\n            payerForHolders:0x0\n            }))-1;\n    }\n\n    //Restricts Milestone function with functionality not necessary for Ouster.\n    modifier isNotOuster(uint _milestoneID) {\n        require(ousterID != _milestoneID, \"Milestone cannot be the ouster milestone.\");\n        _;\n    }\n\n    /** @dev Claim funds of a milestone.\n    *  @param _milestoneID The ID of the milestone.\n    *  @param _amount The amount claim. Note that the team can claim less than the amount of a milestone. This allows partial completion claims.\n    */\n    function claimMilestone(uint _milestoneID, uint _amount) public isNotOuster(_milestoneID) {\n        Milestone storage milestone = milestones[_milestoneID];\n        require(msg.sender == team, \"Can only be called by the team.\");\n        require(milestone.claimTime == 0, \"Cannot be called when other claims are active.\"); // Verify another claim is not active.\n        require(milestone.amount <= _amount, \"TODO.\");\n\n        milestone.claimTime = now;\n    }\n\n    /** @dev Make a forked token to dispute a claim.\n    *  This avoid creating a token all the time, since most milestones should not be disputed.\n    *  @param _milestoneID The ID of the milestone.\n    */\n    function makeVoteToken(uint _milestoneID) public {\n        Milestone storage milestone = milestones[_milestoneID];\n        // The milestone is currently claimed by the team, unless this is the ouster.\n        if (ousterID != _milestoneID) {require(milestone.claimTime != 0, \"The milestone must be claimed by the team.\");}\n        require(address(milestone.voteToken) == 0x0, \"The token has already been made.\");\n\n        milestone.voteToken = MiniMeToken(token.createCloneToken(\"\", token.decimals(), \"\", block.number, true));\n    }\n\n    /** @dev Pay fee to dispute a milestone. To be called by parties claiming the milestone was not completed.\n    *  The first party to pay the fee entirely will be reimbursed if the dispute is won.\n    *  Note that holders can make a smart contract to crowdfund the fee.\n    *  In the rare event the arbitrationCost is increased, anyone can pay the extra, but it is always the first payer who can be reimbursed.\n    *  @param _milestoneID The milestone which is disputed.\n    */\n    function payDisputeFeeByHolders(uint _milestoneID) public payable {\n        Milestone storage milestone = milestones[_milestoneID];\n        uint arbitrationCost = arbitrator.arbitrationCost(arbitratorExtraData);\n        require(!milestone.disputed, \"The milestone cannot be already disputed.\");\n        require(milestone.voteToken.balanceOf(this) >= (disputeThreshold*milestone.voteToken.totalSupply()) / 1000, \"Not enough votes.\");\n        require(milestone.feeHolders < arbitrationCost, \"Fees have not been paid before.\");\n        require(milestone.feeHolders + msg.value >= arbitrationCost, \"Not enough fees have been paid.\");\n\n        milestone.feeHolders += msg.value;\n\n        if (milestone.payerForHolders==0x0)\n        milestone.payerForHolders = msg.sender;\n\n        if (milestone.feeTeam>=arbitrationCost) { // Enough has been paid by all sides.\n            createDispute(_milestoneID,arbitrationCost);\n            } else if (milestone.lastTotalFeePayment==0) { // First time the fee is paid.\n                milestone.lastTotalFeePayment = now;\n                } else if(milestone.lastTotalFeePaymentIsTeam) { // The team was the last one who had paid entirely.\n                    milestone.lastTotalFeePaymentIsTeam = false;\n                    milestone.lastTotalFeePayment = now;\n                }\n    }\n\n    /** @dev Pay fee to for a milestone dispute. To be called by the team when the holders have enough votes and fee paid.\n    *  @param _milestoneID The milestone which is disputed.\n    */\n    function payDisputeFeeByTeam(uint _milestoneID) public payable {\n        Milestone storage milestone = milestones[_milestoneID];\n        uint arbitrationCost = arbitrator.arbitrationCost(arbitratorExtraData);\n        require(msg.sender == team, \"Can only be called by the team.\");\n        require(!milestone.disputed, \"The milestone cannot be already disputed.\");\n        require(milestone.voteToken.balanceOf(this) >= (disputeThreshold*milestone.voteToken.totalSupply()) / 1000, \"Not enough votes.\");\n        require(milestone.feeTeam + msg.value >= arbitrationCost, \"Not enough fees have been paid.\");\n\n\n        milestone.feeTeam += msg.value;\n        if (milestone.feeHolders>=arbitrationCost) { // Enough has been paid by all sides.\n            createDispute(_milestoneID,arbitrationCost);\n        }\n        else if (milestone.lastTotalFeePayment==0) { // First time the fee is paid.     \n            milestone.lastTotalFeePayment = now;\n            milestone.lastTotalFeePaymentIsTeam = true;\n            } else if(!milestone.lastTotalFeePaymentIsTeam) { // The holders were the last ones who had paid entirely.\n                milestone.lastTotalFeePaymentIsTeam = true;\n                milestone.lastTotalFeePayment = now;\n            }\n    }\n\n    /** @dev Create a dispute.\n    *  @param _milestoneID The milestone which is disputed.\n    *  @param _arbitrationCost The amount which should be paid to the arbitrator.\n    */\n    function createDispute(uint _milestoneID, uint _arbitrationCost) internal {\n        Milestone storage milestone = milestones[_milestoneID];\n        milestone.disputed = true;\n        // Remove the fee from the team pool for accounting. Note that at this point it does not matter which fee variable we decrement.\n        milestone.feeTeam -= _arbitrationCost;\n        milestone.disputeID = arbitrator.createDispute(AMOUNT_OF_CHOICES,arbitratorExtraData);\n        disputeIDToMilstoneID[milestone.disputeID] = _milestoneID;\n    }\n\n    /** @dev Withdraw the money claimed in a milestone.\n    *  To be called when a dispute has not been created within the time limit.\n    *  @param _milestoneID The milestone which is disputed.\n    */\n    function withdraw(uint _milestoneID) public isNotOuster(_milestoneID) {\n        Milestone storage milestone = milestones[_milestoneID];\n        require(msg.sender == team, \"Can only be called by the team.\");\n        require(!milestone.disputed, \"Milestone cannot be disputed.\");\n        require(\n            milestone.voteToken.balanceOf(this) < (disputeThreshold*milestone.voteToken.totalSupply()) / 1000,\n            \"Not enough votes.\"\n        ); // There is not enough votes.\n        require(\n            // solium-disable-next-line indentation\n            (now - milestone.claimTime) > claimToWithdrawTime + (additionalTimeToWithdraw * milestone.voteToken.balanceOf(this)) / (1000 * milestone.voteToken.totalSupply()),\n            \"Time limit has not passed yet.\"\n        );\n\n        team.transfer(milestone.amountClaimed+milestone.feeTeam+milestone.feeHolders); // Pay the amount claimed and the unused fees.\n        milestone.amount -= milestone.amountClaimed;\n        milestone.amountClaimed = 0;\n        milestone.claimTime = 0;\n        milestone.feeTeam = 0;\n        milestone.feeHolders = 0;\n\n    }\n\n    // TODO: Timeouts\n    /** @dev Timeout to use when the holders don't pay the fee.\n    *  @param _milestoneID The milestone which is disputed.\n    */\n    function timeoutByTeam(uint _milestoneID) public {\n        Milestone storage milestone = milestones[_milestoneID];\n        require(msg.sender == team, \"Can only be called by the team.\");\n        require(milestone.lastTotalFeePaymentIsTeam, \"Team wasn't the last to pay.\");\n        require(now - milestone.lastTotalFeePayment > timeout, \"Timeout has not passed.\");\n\n        team.transfer(milestone.amountClaimed+milestone.feeTeam+milestone.feeHolders); // Pay the amount claimed and the unused fees to the team.\n        milestone.amount -= milestone.amountClaimed;\n        milestone.amountClaimed = 0;\n        milestone.claimTime = 0;\n        milestone.feeTeam = 0;\n        milestone.feeHolders = 0;\n        milestone.voteToken = MiniMeToken(0x0);\n        milestone.lastTotalFeePayment = 0;\n        milestone.lastTotalFeePaymentIsTeam = false;\n        milestone.payerForHolders = 0x0;\n    }\n\n    /** @dev Timeout to use whe the team don't pay the fee.\n    *  @param _milestoneID The milestone which is disputed.\n    */\n    function timeoutByHolders(uint _milestoneID) public {\n        Milestone storage milestone = milestones[_milestoneID];\n        require(!milestone.lastTotalFeePaymentIsTeam, \"Team wasn't the last to pay.\");\n        require(now - milestone.lastTotalFeePayment > timeout, \"Timeout has not passed.\");\n\n        milestone.payerForHolders.transfer(milestone.feeTeam+milestone.feeHolders); // Pay the unused fees to the payer for holders.\n        milestone.amountClaimed = 0;\n        milestone.claimTime = 0;\n        milestone.disputed = false;\n        milestone.feeTeam = 0;\n        milestone.feeHolders = 0;\n        milestone.voteToken = MiniMeToken(0x0);\n        milestone.lastTotalFeePayment = 0;\n        milestone.payerForHolders = 0x0;\n\n        canChangeTeam = true; //since the team was nonresponsive, the holders are free to change the team.\n    }\n\n    /** @dev Appeal an appealable ruling.\n    *  Transfer the funds to the arbitrator.\n    *  @param _milestoneID The milestone which is disputed.\n    */\n    function appeal(uint _milestoneID) public payable {\n        Milestone storage milestone = milestones[_milestoneID];\n        arbitrator.appeal.value(msg.value)(milestone.disputeID, arbitratorExtraData);\n    }\n\n    /** @dev Execute a ruling of a dispute.\n    *  @param _disputeID ID of the dispute in the Arbitrator contract.\n    *  @param _ruling Ruling given by the arbitrator. Note that 0 is reserved for \"Not able/wanting to make a decision\".\n    */\n    function executeRuling(uint _disputeID, uint _ruling) internal{\n        Milestone storage milestone = milestones[disputeIDToMilstoneID[_disputeID]];\n        // Make sure there is enough votes to protect against a malicious arbitrator.\n        require(milestone.voteToken.balanceOf(this) >= (disputeThreshold*milestone.voteToken.totalSupply()) / 1000, \"Not enough votes.\");\n\n        uint _milestoneID = disputeIDToMilstoneID[_disputeID];\n        if (_ruling==TEAM_WINS) {\n            team.transfer(milestone.amountClaimed+milestone.feeTeam+milestone.feeHolders); // Pay the amount claimed and the unused fees to the team.\n            milestone.amount -= milestone.amountClaimed;\n            milestone.amountClaimed = 0;\n            milestone.claimTime = 0;\n            milestone.disputed = false;\n            milestone.feeTeam = 0;\n            milestone.feeHolders = 0;\n            milestone.voteToken = MiniMeToken(0x0);\n            milestone.disputeID = 0;\n            milestone.lastTotalFeePayment = 0;\n            milestone.lastTotalFeePaymentIsTeam = false;\n            milestone.payerForHolders = 0x0;\n            } else if (_ruling==HOLDERS_WINS) {\n                milestone.payerForHolders.transfer(milestone.feeTeam+milestone.feeHolders); // Pay the unused fees to the payer for holders.\n                milestone.amountClaimed = 0;\n                milestone.claimTime = 0;\n                milestone.disputed = false;\n                milestone.feeTeam = 0;\n                milestone.feeHolders = 0;\n                milestone.voteToken = MiniMeToken(0x0);\n                milestone.disputeID = 0;\n                milestone.lastTotalFeePayment = 0;\n                milestone.lastTotalFeePaymentIsTeam = false;\n                milestone.payerForHolders = 0x0;\n                if( ousterID == _milestoneID ) { //if this is the ouster milestone\n                    canChangeTeam = true; //allow the funder to change the team\n                }\n            }\n    }\n\n    /** @dev Change the team. Note that the holders would have to make\n    *   the funder a votable contract if they want a vote on who the new team will be.\n    *   @param _newTeam the new team.\n    */\n    function changeTeam(address _newTeam) public {\n        require(msg.sender == funder, \"The caller must be the funder.\");\n        require(canChangeTeam, \"Changing teams is not allowed.\");\n        team = _newTeam;\n        canChangeTeam = false; //This can only be called once.\n    }\n\n}\n",
  "sourcePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/ArbitrableTokens/FundingVault.sol",
  "ast": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/ArbitrableTokens/FundingVault.sol",
    "exportedSymbols": {
      "FundingVault": [
        3434
      ]
    },
    "id": 3435,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2268,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".15"
        ],
        "nodeType": "PragmaDirective",
        "src": "155:24:5"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/Arbitrable.sol",
        "file": "../Arbitrable.sol",
        "id": 2269,
        "nodeType": "ImportDirective",
        "scope": 3435,
        "sourceUnit": 596,
        "src": "181:27:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "minimetoken/contracts/MiniMeToken.sol",
        "file": "minimetoken/contracts/MiniMeToken.sol",
        "id": 2270,
        "nodeType": "ImportDirective",
        "scope": 3435,
        "sourceUnit": 19661,
        "src": "209:47:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2271,
              "name": "Arbitrable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 595,
              "src": "1141:10:5",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Arbitrable_$595",
                "typeString": "contract Arbitrable"
              }
            },
            "id": 2272,
            "nodeType": "InheritanceSpecifier",
            "src": "1141:10:5"
          }
        ],
        "contractDependencies": [
          595
        ],
        "contractKind": "contract",
        "documentation": "@title Funding Vault\n A contract storing the ETH raised in a crowdfunding event.\n Funds are delivered when milestones are reached.\n The team can claim a milestone is reached. Token holders will have some time to dispute that claim.\n When some token holders vote to dispute the claim, extra time is given to other token holders to dispute that claim.\n If a sufficient amount of token holders dispute it. A dispute is created and the arbitrator will decide if the milestone has been reached.\n When there is a disagreement a vote token is created. Holders should send the voteToken to the Vault to disagree with the milestone.\n Token holders can also claim that the team failed to deliver and ask for the remaining ETH to be given back to a different contract.\n This contract can be the vault of another team, or a contract to reimburse.",
        "fullyImplemented": true,
        "id": 3434,
        "linearizedBaseContracts": [
          3434,
          595
        ],
        "name": "FundingVault",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2274,
            "name": "team",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1158:19:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2273,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1158:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2276,
            "name": "token",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1183:24:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_MiniMeToken_$19619",
              "typeString": "contract MiniMeToken"
            },
            "typeName": {
              "contractScope": null,
              "id": 2275,
              "name": "MiniMeToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 19619,
              "src": "1183:11:5",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                "typeString": "contract MiniMeToken"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2278,
            "name": "funder",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1213:21:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2277,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1213:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2280,
            "name": "disputeThreshold",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1240:28:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2279,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1240:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2282,
            "name": "claimToWithdrawTime",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1274:31:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2281,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1274:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2284,
            "name": "additionalTimeToWithdraw",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1311:36:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2283,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1311:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2286,
            "name": "timeout",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1353:19:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2285,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1353:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "FundingVault.Milestone",
            "id": 2309,
            "members": [
              {
                "constant": false,
                "id": 2288,
                "name": "amount",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1405:11:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2287,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1405:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2290,
                "name": "amountClaimed",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1490:18:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2289,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1490:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2292,
                "name": "claimTime",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1558:14:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2291,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1558:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2294,
                "name": "disputed",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1658:13:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 2293,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1658:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2296,
                "name": "feeTeam",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1719:12:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2295,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1719:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2298,
                "name": "feeHolders",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1779:15:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2297,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1779:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2300,
                "name": "voteToken",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1846:21:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                  "typeString": "contract MiniMeToken"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 2299,
                  "name": "MiniMeToken",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 19619,
                  "src": "1846:11:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                    "typeString": "contract MiniMeToken"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2302,
                "name": "disputeID",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1921:14:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2301,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1921:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2304,
                "name": "lastTotalFeePayment",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1993:24:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2303,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1993:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2306,
                "name": "lastTotalFeePaymentIsTeam",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "2087:30:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 2305,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2087:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2308,
                "name": "payerForHolders",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "2177:23:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2307,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2177:7:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Milestone",
            "nodeType": "StructDefinition",
            "scope": 3434,
            "src": "1378:920:5",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2312,
            "name": "milestones",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2303:29:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
              "typeString": "struct FundingVault.Milestone[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2310,
                "name": "Milestone",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2309,
                "src": "2303:9:5",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                  "typeString": "struct FundingVault.Milestone"
                }
              },
              "id": 2311,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "2303:11:5",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage_ptr",
                "typeString": "struct FundingVault.Milestone[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2316,
            "name": "disputeIDToMilstoneID",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2338:50:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 2315,
              "keyType": {
                "id": 2313,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "2346:4:5",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "2338:21:5",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueType": {
                "id": 2314,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "2354:4:5",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2318,
            "name": "ousterID",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2429:13:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2317,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "2429:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2320,
            "name": "canChangeTeam",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2570:18:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 2319,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "2570:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2323,
            "name": "AMOUNT_OF_CHOICES",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2713:36:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2321,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "2713:5:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 2322,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2748:1:5",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2326,
            "name": "TEAM_WINS",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2755:28:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2324,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "2755:5:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 2325,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2782:1:5",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2329,
            "name": "HOLDERS_WINS",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2789:31:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2327,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "2789:5:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 2328,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2819:1:5",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2411,
              "nodeType": "Block",
              "src": "3939:804:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2354,
                      "name": "team",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2274,
                      "src": "3949:4:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2355,
                      "name": "_team",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2335,
                      "src": "3956:5:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3949:12:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2357,
                  "nodeType": "ExpressionStatement",
                  "src": "3949:12:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2362,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2358,
                      "name": "token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2276,
                      "src": "3971:5:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2360,
                          "name": "_token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2337,
                          "src": "3991:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 2359,
                        "name": "MiniMeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19619,
                        "src": "3979:11:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                          "typeString": "type(contract MiniMeToken)"
                        }
                      },
                      "id": 2361,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3979:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "src": "3971:27:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "id": 2363,
                  "nodeType": "ExpressionStatement",
                  "src": "3971:27:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2366,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2364,
                      "name": "funder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2278,
                      "src": "4008:6:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2365,
                      "name": "_funder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2339,
                      "src": "4017:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4008:16:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2367,
                  "nodeType": "ExpressionStatement",
                  "src": "4008:16:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2370,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2368,
                      "name": "disputeThreshold",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2280,
                      "src": "4034:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2369,
                      "name": "_disputeThreshold",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2341,
                      "src": "4053:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4034:36:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2371,
                  "nodeType": "ExpressionStatement",
                  "src": "4034:36:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2372,
                      "name": "claimToWithdrawTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2282,
                      "src": "4080:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2373,
                      "name": "_claimToWithdrawTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2343,
                      "src": "4102:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4080:42:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2375,
                  "nodeType": "ExpressionStatement",
                  "src": "4080:42:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2376,
                      "name": "additionalTimeToWithdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2284,
                      "src": "4132:24:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2377,
                      "name": "_additionalTimeToWithdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2345,
                      "src": "4159:25:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4132:52:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2379,
                  "nodeType": "ExpressionStatement",
                  "src": "4132:52:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2382,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2380,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2286,
                      "src": "4194:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2381,
                      "name": "_timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2347,
                      "src": "4204:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4194:18:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2383,
                  "nodeType": "ExpressionStatement",
                  "src": "4194:18:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2405,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2384,
                      "name": "ousterID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2318,
                      "src": "4222:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2404,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2388,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4377:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2389,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4406:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2390,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4431:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 2391,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4455:5:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2392,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4482:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2393,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4508:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "307830",
                                    "id": 2395,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4545:3:5",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0x0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 2394,
                                  "name": "MiniMeToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19619,
                                  "src": "4533:11:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                                    "typeString": "type(contract MiniMeToken)"
                                  }
                                },
                                "id": 2396,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4533:16:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                  "typeString": "contract MiniMeToken"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2397,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4573:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4608:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 2399,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4649:5:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 2400,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4684:3:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2387,
                              "name": "Milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2309,
                              "src": "4249:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Milestone_$2309_storage_ptr_$",
                                "typeString": "type(struct FundingVault.Milestone storage pointer)"
                              }
                            },
                            "id": 2401,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [
                              "amount",
                              "amountClaimed",
                              "claimTime",
                              "disputed",
                              "feeTeam",
                              "feeHolders",
                              "voteToken",
                              "disputeID",
                              "lastTotalFeePayment",
                              "lastTotalFeePaymentIsTeam",
                              "payerForHolders"
                            ],
                            "nodeType": "FunctionCall",
                            "src": "4249:453:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_memory",
                              "typeString": "struct FundingVault.Milestone memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Milestone_$2309_memory",
                              "typeString": "struct FundingVault.Milestone memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2385,
                            "name": "milestones",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2312,
                            "src": "4233:10:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                              "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                            }
                          },
                          "id": 2386,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "push",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4233:15:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$2309_storage_$returns$_t_uint256_$",
                            "typeString": "function (struct FundingVault.Milestone storage ref) returns (uint256)"
                          }
                        },
                        "id": 2402,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4233:470:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 2403,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4704:1:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "4233:472:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4222:483:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2406,
                  "nodeType": "ExpressionStatement",
                  "src": "4222:483:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2407,
                      "name": "canChangeTeam",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2320,
                      "src": "4715:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 2408,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4731:5:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "4715:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2410,
                  "nodeType": "ExpressionStatement",
                  "src": "4715:21:5"
                }
              ]
            },
            "documentation": "@dev Constructor. Choose the arbitrator.\n @param _arbitrator The arbitrator of the contract.\n @param _team The address of the team who will be able to claim milestone completion.\n @param _token The token whose holders are able to dispute milestone claims.\n @param _funder The party putting funds in the vault.\n @param _disputeThreshold The ‱ of tokens required to dispute a milestone.\n @param _claimToWithdrawTime The base time in seconds after a claim is considered non-disputed (i.e  if no token holders dispute it).\n @param _additionalTimeToWithdraw The time in seconds which is added per ‱ of tokens disputing the claim.\n @param _timeout Maximum time to pay arbitration fees after the other side did.",
            "id": 2412,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2350,
                    "name": "_arbitrator",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2331,
                    "src": "3905:11:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Arbitrator_$4021",
                      "typeString": "contract Arbitrator"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 2351,
                    "name": "_arbitratorExtraData",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2333,
                    "src": "3917:20:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  }
                ],
                "id": 2352,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2349,
                  "name": "Arbitrable",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 595,
                  "src": "3894:10:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Arbitrable_$595_$",
                    "typeString": "type(contract Arbitrable)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3894:44:5"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2348,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2331,
                  "name": "_arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3620:22:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Arbitrator_$4021",
                    "typeString": "contract Arbitrator"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 2330,
                    "name": "Arbitrator",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4021,
                    "src": "3620:10:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Arbitrator_$4021",
                      "typeString": "contract Arbitrator"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2333,
                  "name": "_arbitratorExtraData",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3652:26:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2332,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3652:5:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2335,
                  "name": "_team",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3688:13:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2334,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3688:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2337,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3711:14:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2336,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3711:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2339,
                  "name": "_funder",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3735:15:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2338,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3735:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2341,
                  "name": "_disputeThreshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3760:22:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2340,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3760:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2343,
                  "name": "_claimToWithdrawTime",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3792:25:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2342,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3792:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2345,
                  "name": "_additionalTimeToWithdraw",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3827:30:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2344,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3827:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2347,
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3867:13:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2346,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3867:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3610:276:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2353,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3939:0:5"
            },
            "scope": 3434,
            "src": "3599:1144:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2447,
              "nodeType": "Block",
              "src": "4937:481:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2418,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "4955:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2419,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4955:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2420,
                          "name": "funder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2278,
                          "src": "4969:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "4955:20:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652063616c6c6572206d757374206265207468652066756e6465722e",
                        "id": 2422,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4977:32:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0c9d3b399a3d68d0148c673da4c550101d07b772f20f362fde785fdba4f21aa6",
                          "typeString": "literal_string \"The caller must be the funder.\""
                        },
                        "value": "The caller must be the funder."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0c9d3b399a3d68d0148c673da4c550101d07b772f20f362fde785fdba4f21aa6",
                          "typeString": "literal_string \"The caller must be the funder.\""
                        }
                      ],
                      "id": 2417,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "4947:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2423,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4947:63:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2424,
                  "nodeType": "ExpressionStatement",
                  "src": "4947:63:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2428,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20639,
                                "src": "5075:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2429,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5075:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2430,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5112:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2431,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5137:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 2432,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5161:5:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2433,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5188:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2434,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5214:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 2436,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5251:3:5",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2435,
                                "name": "MiniMeToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19619,
                                "src": "5239:11:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                                  "typeString": "type(contract MiniMeToken)"
                                }
                              },
                              "id": 2437,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5239:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2438,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5279:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2439,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5314:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 2440,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5355:5:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 2441,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5390:3:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2427,
                            "name": "Milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2309,
                            "src": "5044:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Milestone_$2309_storage_ptr_$",
                              "typeString": "type(struct FundingVault.Milestone storage pointer)"
                            }
                          },
                          "id": 2442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [
                            "amount",
                            "amountClaimed",
                            "claimTime",
                            "disputed",
                            "feeTeam",
                            "feeHolders",
                            "voteToken",
                            "disputeID",
                            "lastTotalFeePayment",
                            "lastTotalFeePaymentIsTeam",
                            "payerForHolders"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "5044:364:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_memory",
                            "typeString": "struct FundingVault.Milestone memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Milestone_$2309_memory",
                            "typeString": "struct FundingVault.Milestone memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2425,
                          "name": "milestones",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2312,
                          "src": "5028:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                            "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                          }
                        },
                        "id": 2426,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "push",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5028:15:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$2309_storage_$returns$_t_uint256_$",
                          "typeString": "function (struct FundingVault.Milestone storage ref) returns (uint256)"
                        }
                      },
                      "id": 2443,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5028:381:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 2444,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5410:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "5028:383:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2416,
                  "id": 2446,
                  "nodeType": "Return",
                  "src": "5021:390:5"
                }
              ]
            },
            "documentation": "@dev Give the funds for a milestone.\n @return milestoneID The ID of the milestone which was created.",
            "id": 2448,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "fundMilestone",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2413,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4893:2:5"
            },
            "payable": true,
            "returnParameters": {
              "id": 2416,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2415,
                  "name": "milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2448,
                  "src": "4919:16:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2414,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4919:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4918:18:5"
            },
            "scope": 3434,
            "src": "4871:547:5",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2460,
              "nodeType": "Block",
              "src": "5544:106:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2455,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2453,
                          "name": "ousterID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2318,
                          "src": "5562:8:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2454,
                          "name": "_milestoneID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2450,
                          "src": "5574:12:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5562:24:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d696c6573746f6e652e",
                        "id": 2456,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5588:43:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b53890adf9be771bbd0ad03506a6f48fbd3e04bc518544a1349b790e4806a4b",
                          "typeString": "literal_string \"Milestone cannot be the ouster milestone.\""
                        },
                        "value": "Milestone cannot be the ouster milestone."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b53890adf9be771bbd0ad03506a6f48fbd3e04bc518544a1349b790e4806a4b",
                          "typeString": "literal_string \"Milestone cannot be the ouster milestone.\""
                        }
                      ],
                      "id": 2452,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "5554:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5554:78:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2458,
                  "nodeType": "ExpressionStatement",
                  "src": "5554:78:5"
                },
                {
                  "id": 2459,
                  "nodeType": "PlaceholderStatement",
                  "src": "5642:1:5"
                }
              ]
            },
            "documentation": null,
            "id": 2461,
            "name": "isNotOuster",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2451,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2450,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2461,
                  "src": "5525:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2449,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5525:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5524:19:5"
            },
            "src": "5504:146:5",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2507,
              "nodeType": "Block",
              "src": "5991:366:5",
              "statements": [
                {
                  "assignments": [
                    2472
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2472,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2508,
                      "src": "6001:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2471,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "6001:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2476,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2473,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "6031:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2475,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2474,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2463,
                      "src": "6042:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6031:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6001:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2481,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2478,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "6073:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2479,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6073:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2480,
                          "name": "team",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2274,
                          "src": "6087:4:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "6073:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746865207465616d2e",
                        "id": 2482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6093:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        },
                        "value": "Can only be called by the team."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        }
                      ],
                      "id": 2477,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6065:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6065:62:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2484,
                  "nodeType": "ExpressionStatement",
                  "src": "6065:62:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2489,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2486,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2472,
                            "src": "6145:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2487,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "claimTime",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2292,
                          "src": "6145:19:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2488,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6168:1:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "6145:24:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e6e6f742062652063616c6c6564207768656e206f7468657220636c61696d7320617265206163746976652e",
                        "id": 2490,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6171:48:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1c2eefcc6a8c19d7c8099cc465ae30a6f8c4074902464309c801bdecab045b6f",
                          "typeString": "literal_string \"Cannot be called when other claims are active.\""
                        },
                        "value": "Cannot be called when other claims are active."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1c2eefcc6a8c19d7c8099cc465ae30a6f8c4074902464309c801bdecab045b6f",
                          "typeString": "literal_string \"Cannot be called when other claims are active.\""
                        }
                      ],
                      "id": 2485,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6137:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6137:83:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2492,
                  "nodeType": "ExpressionStatement",
                  "src": "6137:83:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2497,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2494,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2472,
                            "src": "6277:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2495,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "amount",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2288,
                          "src": "6277:16:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2496,
                          "name": "_amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2465,
                          "src": "6297:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6277:27:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "544f444f2e",
                        "id": 2498,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6306:7:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_deea7c8036d5801eaf1b814363946dcfcabcf39e8525400cc992191a3ff56ff5",
                          "typeString": "literal_string \"TODO.\""
                        },
                        "value": "TODO."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_deea7c8036d5801eaf1b814363946dcfcabcf39e8525400cc992191a3ff56ff5",
                          "typeString": "literal_string \"TODO.\""
                        }
                      ],
                      "id": 2493,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6269:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2499,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6269:45:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2500,
                  "nodeType": "ExpressionStatement",
                  "src": "6269:45:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2501,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2472,
                        "src": "6325:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2503,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2292,
                      "src": "6325:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2504,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20641,
                      "src": "6347:3:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6325:25:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2506,
                  "nodeType": "ExpressionStatement",
                  "src": "6325:25:5"
                }
              ]
            },
            "documentation": "@dev Claim funds of a milestone.\n @param _milestoneID The ID of the milestone.\n @param _amount The amount claim. Note that the team can claim less than the amount of a milestone. This allows partial completion claims.",
            "id": 2508,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2468,
                    "name": "_milestoneID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2463,
                    "src": "5977:12:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2469,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2467,
                  "name": "isNotOuster",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2461,
                  "src": "5965:11:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5965:25:5"
              }
            ],
            "name": "claimMilestone",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2466,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2463,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2508,
                  "src": "5925:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2462,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5925:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2465,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2508,
                  "src": "5944:12:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2464,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5944:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5924:33:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2470,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5991:0:5"
            },
            "scope": 3434,
            "src": "5901:456:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2560,
              "nodeType": "Block",
              "src": "6619:482:5",
              "statements": [
                {
                  "assignments": [
                    2514
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2514,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2561,
                      "src": "6629:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2513,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "6629:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2518,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2515,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "6659:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2517,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2516,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2510,
                      "src": "6670:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6659:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6629:54:5"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2519,
                      "name": "ousterID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2318,
                      "src": "6783:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2520,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2510,
                      "src": "6795:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6783:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2531,
                  "nodeType": "IfStatement",
                  "src": "6779:112:5",
                  "trueBody": {
                    "id": 2530,
                    "nodeType": "Block",
                    "src": "6809:82:5",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2526,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2523,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2514,
                                  "src": "6818:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2524,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "claimTime",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2292,
                                "src": "6818:19:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2525,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6841:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "6818:24:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "546865206d696c6573746f6e65206d75737420626520636c61696d656420627920746865207465616d2e",
                              "id": 2527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6844:44:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_72468c3c7f9c35e6d80959589679fbcb429c80f3088ae00de2cfb3c392f13346",
                                "typeString": "literal_string \"The milestone must be claimed by the team.\""
                              },
                              "value": "The milestone must be claimed by the team."
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_72468c3c7f9c35e6d80959589679fbcb429c80f3088ae00de2cfb3c392f13346",
                                "typeString": "literal_string \"The milestone must be claimed by the team.\""
                              }
                            ],
                            "id": 2522,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              20642,
                              20643
                            ],
                            "referencedDeclaration": 20643,
                            "src": "6810:7:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 2528,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6810:79:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2529,
                        "nodeType": "ExpressionStatement",
                        "src": "6810:79:5"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2534,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2514,
                                "src": "6916:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2535,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "6916:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            ],
                            "id": 2533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6908:7:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6908:28:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 2537,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6940:3:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        },
                        "src": "6908:35:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "54686520746f6b656e2068617320616c7265616479206265656e206d6164652e",
                        "id": 2539,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6945:34:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_bc153df1873ea220909c47e551e88a0d328896cbfe357faa2151bfb48b701e44",
                          "typeString": "literal_string \"The token has already been made.\""
                        },
                        "value": "The token has already been made."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_bc153df1873ea220909c47e551e88a0d328896cbfe357faa2151bfb48b701e44",
                          "typeString": "literal_string \"The token has already been made.\""
                        }
                      ],
                      "id": 2532,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6900:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6900:80:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2541,
                  "nodeType": "ExpressionStatement",
                  "src": "6900:80:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2542,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2514,
                        "src": "6991:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2544,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "voteToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2300,
                      "src": "6991:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "",
                              "id": 2548,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7048:2:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2549,
                                  "name": "token",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2276,
                                  "src": "7052:5:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                    "typeString": "contract MiniMeToken"
                                  }
                                },
                                "id": 2550,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "decimals",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 18611,
                                "src": "7052:14:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                                  "typeString": "function () view external returns (uint8)"
                                }
                              },
                              "id": 2551,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7052:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "",
                              "id": 2552,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7070:2:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2553,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20629,
                                "src": "7074:5:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 2554,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "number",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "7074:12:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 2555,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7088:4:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2546,
                              "name": "token",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2276,
                              "src": "7025:5:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 2547,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "createCloneToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 19177,
                            "src": "7025:22:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_uint8_$_t_string_memory_ptr_$_t_uint256_$_t_bool_$returns$_t_address_$",
                              "typeString": "function (string memory,uint8,string memory,uint256,bool) external returns (address)"
                            }
                          },
                          "id": 2556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7025:68:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 2545,
                        "name": "MiniMeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19619,
                        "src": "7013:11:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                          "typeString": "type(contract MiniMeToken)"
                        }
                      },
                      "id": 2557,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7013:81:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "src": "6991:103:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "id": 2559,
                  "nodeType": "ExpressionStatement",
                  "src": "6991:103:5"
                }
              ]
            },
            "documentation": "@dev Make a forked token to dispute a claim.\n This avoid creating a token all the time, since most milestones should not be disputed.\n @param _milestoneID The ID of the milestone.",
            "id": 2561,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "makeVoteToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2511,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2510,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2561,
                  "src": "6593:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2509,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6593:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6592:19:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2512,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6619:0:5"
            },
            "scope": 3434,
            "src": "6570:531:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2682,
              "nodeType": "Block",
              "src": "7654:1252:5",
              "statements": [
                {
                  "assignments": [
                    2567
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2567,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2683,
                      "src": "7664:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2566,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "7664:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2571,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2568,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "7694:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2570,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2569,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2563,
                      "src": "7705:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7694:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7664:54:5"
                },
                {
                  "assignments": [
                    2573
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2573,
                      "name": "arbitrationCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 2683,
                      "src": "7728:20:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2572,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "7728:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2578,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2576,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "7778:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2574,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "7751:10:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      "id": 2575,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "arbitrationCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3967,
                      "src": "7751:26:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (bytes memory) view external returns (uint256)"
                      }
                    },
                    "id": 2577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7751:47:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7728:70:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2582,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "7816:19:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2580,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2567,
                            "src": "7817:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2581,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "disputed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2294,
                          "src": "7817:18:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792064697370757465642e",
                        "id": 2583,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7837:43:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c89acdf3ae213bf1bfe0985ee6e8516fb4f5e2dc1beeccca6e6210536f20b5f",
                          "typeString": "literal_string \"The milestone cannot be already disputed.\""
                        },
                        "value": "The milestone cannot be already disputed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c89acdf3ae213bf1bfe0985ee6e8516fb4f5e2dc1beeccca6e6210536f20b5f",
                          "typeString": "literal_string \"The milestone cannot be already disputed.\""
                        }
                      ],
                      "id": 2579,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "7808:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2584,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7808:73:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2585,
                  "nodeType": "ExpressionStatement",
                  "src": "7808:73:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2601,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2590,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20710,
                              "src": "7929:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2587,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2567,
                                "src": "7899:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2588,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "7899:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 2589,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balanceOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18894,
                            "src": "7899:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 2591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7899:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2600,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2597,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2592,
                                  "name": "disputeThreshold",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2280,
                                  "src": "7939:16:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2593,
                                        "name": "milestone",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2567,
                                        "src": "7956:9:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                          "typeString": "struct FundingVault.Milestone storage pointer"
                                        }
                                      },
                                      "id": 2594,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "voteToken",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2300,
                                      "src": "7956:19:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                        "typeString": "contract MiniMeToken"
                                      }
                                    },
                                    "id": 2595,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "totalSupply",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19019,
                                    "src": "7956:31:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 2596,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7956:33:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7939:50:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2598,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "7938:52:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 2599,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7993:4:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "7938:59:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7899:98:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820766f7465732e",
                        "id": 2602,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7999:19:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        },
                        "value": "Not enough votes."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        }
                      ],
                      "id": 2586,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "7891:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7891:128:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2604,
                  "nodeType": "ExpressionStatement",
                  "src": "7891:128:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2606,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2567,
                            "src": "8037:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2607,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeHolders",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2298,
                          "src": "8037:20:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2608,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "8060:15:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "8037:38:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "466565732068617665206e6f74206265656e2070616964206265666f72652e",
                        "id": 2610,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8077:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_72c9db2ef874f5605bd099729304478c638065f6f6e56c0e61c8793e96f26045",
                          "typeString": "literal_string \"Fees have not been paid before.\""
                        },
                        "value": "Fees have not been paid before."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_72c9db2ef874f5605bd099729304478c638065f6f6e56c0e61c8793e96f26045",
                          "typeString": "literal_string \"Fees have not been paid before.\""
                        }
                      ],
                      "id": 2605,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "8029:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2611,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8029:82:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2612,
                  "nodeType": "ExpressionStatement",
                  "src": "8029:82:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2614,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2567,
                              "src": "8129:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2615,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeHolders",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2298,
                            "src": "8129:20:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2616,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "8152:3:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2617,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "8152:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8129:32:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2619,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "8165:15:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "8129:51:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820666565732068617665206265656e20706169642e",
                        "id": 2621,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8182:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0a1038ca079f03d8b263024fb5fcf5967b3c7ac039de6ae291227830e82bb5f1",
                          "typeString": "literal_string \"Not enough fees have been paid.\""
                        },
                        "value": "Not enough fees have been paid."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0a1038ca079f03d8b263024fb5fcf5967b3c7ac039de6ae291227830e82bb5f1",
                          "typeString": "literal_string \"Not enough fees have been paid.\""
                        }
                      ],
                      "id": 2613,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "8121:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2622,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8121:95:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2623,
                  "nodeType": "ExpressionStatement",
                  "src": "8121:95:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2624,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2567,
                        "src": "8227:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2626,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "8227:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2627,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "8251:3:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2628,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8251:9:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8227:33:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2630,
                  "nodeType": "ExpressionStatement",
                  "src": "8227:33:5"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2634,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2631,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2567,
                        "src": "8275:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2632,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "payerForHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2308,
                      "src": "8275:25:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 2633,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8302:3:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "8275:30:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2642,
                  "nodeType": "IfStatement",
                  "src": "8271:82:5",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2635,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2567,
                          "src": "8315:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2637,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "memberName": "payerForHolders",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2308,
                        "src": "8315:25:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2638,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "8343:3:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2639,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8343:10:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "8315:38:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2641,
                    "nodeType": "ExpressionStatement",
                    "src": "8315:38:5"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2643,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2567,
                        "src": "8368:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2644,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "8368:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2645,
                      "name": "arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2573,
                      "src": "8387:15:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8368:34:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2653,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2567,
                          "src": "8524:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2654,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastTotalFeePayment",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2304,
                        "src": "8524:29:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2655,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8555:1:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "8524:32:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2664,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2567,
                          "src": "8670:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2665,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastTotalFeePaymentIsTeam",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2306,
                        "src": "8670:35:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 2679,
                      "nodeType": "IfStatement",
                      "src": "8667:233:5",
                      "trueBody": {
                        "id": 2678,
                        "nodeType": "Block",
                        "src": "8707:193:5",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2670,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2666,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2567,
                                  "src": "8781:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2668,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "lastTotalFeePaymentIsTeam",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2306,
                                "src": "8781:35:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 2669,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8819:5:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              "src": "8781:43:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 2671,
                            "nodeType": "ExpressionStatement",
                            "src": "8781:43:5"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2676,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2672,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2567,
                                  "src": "8846:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2674,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "lastTotalFeePayment",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2304,
                                "src": "8846:29:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "id": 2675,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20641,
                                "src": "8878:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "8846:35:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 2677,
                            "nodeType": "ExpressionStatement",
                            "src": "8846:35:5"
                          }
                        ]
                      }
                    },
                    "id": 2680,
                    "nodeType": "IfStatement",
                    "src": "8520:380:5",
                    "trueBody": {
                      "id": 2663,
                      "nodeType": "Block",
                      "src": "8558:103:5",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 2661,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2657,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2567,
                                "src": "8607:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2659,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePayment",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2304,
                              "src": "8607:29:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 2660,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20641,
                              "src": "8639:3:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "8607:35:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 2662,
                          "nodeType": "ExpressionStatement",
                          "src": "8607:35:5"
                        }
                      ]
                    }
                  },
                  "id": 2681,
                  "nodeType": "IfStatement",
                  "src": "8364:536:5",
                  "trueBody": {
                    "id": 2652,
                    "nodeType": "Block",
                    "src": "8404:110:5",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2648,
                              "name": "_milestoneID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2563,
                              "src": "8470:12:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2649,
                              "name": "arbitrationCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2573,
                              "src": "8483:15:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 2647,
                            "name": "createDispute",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2843,
                            "src": "8456:13:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256)"
                            }
                          },
                          "id": 2650,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8456:43:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2651,
                        "nodeType": "ExpressionStatement",
                        "src": "8456:43:5"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Pay fee to dispute a milestone. To be called by parties claiming the milestone was not completed.\n The first party to pay the fee entirely will be reimbursed if the dispute is won.\n Note that holders can make a smart contract to crowdfund the fee.\n In the rare event the arbitrationCost is increased, anyone can pay the extra, but it is always the first payer who can be reimbursed.\n @param _milestoneID The milestone which is disputed.",
            "id": 2683,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "payDisputeFeeByHolders",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2564,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2563,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2683,
                  "src": "7620:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2562,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7620:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7619:19:5"
            },
            "payable": true,
            "returnParameters": {
              "id": 2565,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7654:0:5"
            },
            "scope": 3434,
            "src": "7588:1318:5",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2799,
              "nodeType": "Block",
              "src": "9165:1186:5",
              "statements": [
                {
                  "assignments": [
                    2689
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2689,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2800,
                      "src": "9175:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2688,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "9175:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2693,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2690,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "9205:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2692,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2691,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2685,
                      "src": "9216:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9205:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9175:54:5"
                },
                {
                  "assignments": [
                    2695
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2695,
                      "name": "arbitrationCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 2800,
                      "src": "9239:20:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2694,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "9239:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2700,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2698,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "9289:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2696,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "9262:10:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      "id": 2697,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "arbitrationCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3967,
                      "src": "9262:26:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (bytes memory) view external returns (uint256)"
                      }
                    },
                    "id": 2699,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9262:47:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9239:70:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2705,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2702,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "9327:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9327:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2704,
                          "name": "team",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2274,
                          "src": "9341:4:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "9327:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746865207465616d2e",
                        "id": 2706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9347:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        },
                        "value": "Can only be called by the team."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        }
                      ],
                      "id": 2701,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "9319:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9319:62:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2708,
                  "nodeType": "ExpressionStatement",
                  "src": "9319:62:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2712,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "9399:19:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2710,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2689,
                            "src": "9400:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2711,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "disputed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2294,
                          "src": "9400:18:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792064697370757465642e",
                        "id": 2713,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9420:43:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c89acdf3ae213bf1bfe0985ee6e8516fb4f5e2dc1beeccca6e6210536f20b5f",
                          "typeString": "literal_string \"The milestone cannot be already disputed.\""
                        },
                        "value": "The milestone cannot be already disputed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c89acdf3ae213bf1bfe0985ee6e8516fb4f5e2dc1beeccca6e6210536f20b5f",
                          "typeString": "literal_string \"The milestone cannot be already disputed.\""
                        }
                      ],
                      "id": 2709,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "9391:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2714,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9391:73:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2715,
                  "nodeType": "ExpressionStatement",
                  "src": "9391:73:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2731,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2720,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20710,
                              "src": "9512:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2717,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2689,
                                "src": "9482:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2718,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "9482:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 2719,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balanceOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18894,
                            "src": "9482:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 2721,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9482:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2730,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2727,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2722,
                                  "name": "disputeThreshold",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2280,
                                  "src": "9522:16:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2723,
                                        "name": "milestone",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2689,
                                        "src": "9539:9:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                          "typeString": "struct FundingVault.Milestone storage pointer"
                                        }
                                      },
                                      "id": 2724,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "voteToken",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2300,
                                      "src": "9539:19:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                        "typeString": "contract MiniMeToken"
                                      }
                                    },
                                    "id": 2725,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "totalSupply",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19019,
                                    "src": "9539:31:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 2726,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "9539:33:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "9522:50:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2728,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "9521:52:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 2729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9576:4:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "9521:59:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "9482:98:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820766f7465732e",
                        "id": 2732,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9582:19:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        },
                        "value": "Not enough votes."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        }
                      ],
                      "id": 2716,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "9474:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2733,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9474:128:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2734,
                  "nodeType": "ExpressionStatement",
                  "src": "9474:128:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2742,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2740,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2736,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2689,
                              "src": "9620:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2737,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2296,
                            "src": "9620:17:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2738,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "9640:3:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2739,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "9640:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "9620:29:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2741,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2695,
                          "src": "9653:15:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "9620:48:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820666565732068617665206265656e20706169642e",
                        "id": 2743,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9670:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0a1038ca079f03d8b263024fb5fcf5967b3c7ac039de6ae291227830e82bb5f1",
                          "typeString": "literal_string \"Not enough fees have been paid.\""
                        },
                        "value": "Not enough fees have been paid."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0a1038ca079f03d8b263024fb5fcf5967b3c7ac039de6ae291227830e82bb5f1",
                          "typeString": "literal_string \"Not enough fees have been paid.\""
                        }
                      ],
                      "id": 2735,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "9612:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2744,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9612:92:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2745,
                  "nodeType": "ExpressionStatement",
                  "src": "9612:92:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2751,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2746,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2689,
                        "src": "9716:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2748,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "9716:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2749,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "9737:3:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2750,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9737:9:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9716:30:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2752,
                  "nodeType": "ExpressionStatement",
                  "src": "9716:30:5"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2756,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2753,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2689,
                        "src": "9760:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2754,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "9760:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2755,
                      "name": "arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2695,
                      "src": "9782:15:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9760:37:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2766,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2763,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2689,
                          "src": "9923:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2764,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastTotalFeePayment",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2304,
                        "src": "9923:29:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2765,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9954:1:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "9923:32:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "id": 2782,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "10122:36:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2780,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2689,
                            "src": "10123:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2781,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "lastTotalFeePaymentIsTeam",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2306,
                          "src": "10123:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 2796,
                      "nodeType": "IfStatement",
                      "src": "10119:226:5",
                      "trueBody": {
                        "id": 2795,
                        "nodeType": "Block",
                        "src": "10160:185:5",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2787,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2783,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2689,
                                  "src": "10235:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2785,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "lastTotalFeePaymentIsTeam",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2306,
                                "src": "10235:35:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 2786,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10273:4:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "src": "10235:42:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 2788,
                            "nodeType": "ExpressionStatement",
                            "src": "10235:42:5"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2793,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2789,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2689,
                                  "src": "10295:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2791,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "lastTotalFeePayment",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2304,
                                "src": "10295:29:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "id": 2792,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20641,
                                "src": "10327:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10295:35:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 2794,
                            "nodeType": "ExpressionStatement",
                            "src": "10295:35:5"
                          }
                        ]
                      }
                    },
                    "id": 2797,
                    "nodeType": "IfStatement",
                    "src": "9919:426:5",
                    "trueBody": {
                      "id": 2779,
                      "nodeType": "Block",
                      "src": "9957:156:5",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 2771,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2767,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2689,
                                "src": "10007:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2769,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePayment",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2304,
                              "src": "10007:29:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 2770,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20641,
                              "src": "10039:3:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "10007:35:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 2772,
                          "nodeType": "ExpressionStatement",
                          "src": "10007:35:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 2777,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2773,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2689,
                                "src": "10056:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2775,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePaymentIsTeam",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2306,
                              "src": "10056:35:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 2776,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10094:4:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "src": "10056:42:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 2778,
                          "nodeType": "ExpressionStatement",
                          "src": "10056:42:5"
                        }
                      ]
                    }
                  },
                  "id": 2798,
                  "nodeType": "IfStatement",
                  "src": "9756:589:5",
                  "trueBody": {
                    "id": 2762,
                    "nodeType": "Block",
                    "src": "9799:106:5",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2758,
                              "name": "_milestoneID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2685,
                              "src": "9865:12:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2759,
                              "name": "arbitrationCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2695,
                              "src": "9878:15:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 2757,
                            "name": "createDispute",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2843,
                            "src": "9851:13:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256)"
                            }
                          },
                          "id": 2760,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9851:43:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2761,
                        "nodeType": "ExpressionStatement",
                        "src": "9851:43:5"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Pay fee to for a milestone dispute. To be called by the team when the holders have enough votes and fee paid.\n @param _milestoneID The milestone which is disputed.",
            "id": 2800,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "payDisputeFeeByTeam",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2686,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2685,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2800,
                  "src": "9131:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2684,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9131:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9130:19:5"
            },
            "payable": true,
            "returnParameters": {
              "id": 2687,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9165:0:5"
            },
            "scope": 3434,
            "src": "9102:1249:5",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2842,
              "nodeType": "Block",
              "src": "10611:452:5",
              "statements": [
                {
                  "assignments": [
                    2808
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2808,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2843,
                      "src": "10621:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2807,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "10621:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2812,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2809,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "10651:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2811,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2810,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2802,
                      "src": "10662:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "10651:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10621:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2813,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2808,
                        "src": "10685:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2815,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "disputed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2294,
                      "src": "10685:18:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 2816,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10706:4:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "10685:25:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2818,
                  "nodeType": "ExpressionStatement",
                  "src": "10685:25:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2823,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2819,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2808,
                        "src": "10857:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2821,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "10857:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2822,
                      "name": "_arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2804,
                      "src": "10878:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10857:37:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2824,
                  "nodeType": "ExpressionStatement",
                  "src": "10857:37:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2825,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2808,
                        "src": "10904:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2827,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "disputeID",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2302,
                      "src": "10904:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2830,
                          "name": "AMOUNT_OF_CHOICES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2323,
                          "src": "10951:17:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2831,
                          "name": "arbitratorExtraData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 501,
                          "src": "10969:19:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2828,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 499,
                          "src": "10926:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Arbitrator_$4021",
                            "typeString": "contract Arbitrator"
                          }
                        },
                        "id": 2829,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "createDispute",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3960,
                        "src": "10926:24:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                          "typeString": "function (uint256,bytes memory) payable external returns (uint256)"
                        }
                      },
                      "id": 2832,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10926:63:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10904:85:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2834,
                  "nodeType": "ExpressionStatement",
                  "src": "10904:85:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2835,
                        "name": "disputeIDToMilstoneID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2316,
                        "src": "10999:21:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 2838,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2836,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2808,
                          "src": "11021:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2837,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "disputeID",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2302,
                        "src": "11021:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10999:42:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2839,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2802,
                      "src": "11044:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10999:57:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2841,
                  "nodeType": "ExpressionStatement",
                  "src": "10999:57:5"
                }
              ]
            },
            "documentation": "@dev Create a dispute.\n @param _milestoneID The milestone which is disputed.\n @param _arbitrationCost The amount which should be paid to the arbitrator.",
            "id": 2843,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createDispute",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2805,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2802,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2843,
                  "src": "10560:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2801,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10560:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2804,
                  "name": "_arbitrationCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2843,
                  "src": "10579:21:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2803,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10579:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10559:42:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2806,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10611:0:5"
            },
            "scope": 3434,
            "src": "10537:526:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2963,
              "nodeType": "Block",
              "src": "11341:1039:5",
              "statements": [
                {
                  "assignments": [
                    2852
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2852,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2964,
                      "src": "11351:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2851,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "11351:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2856,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2853,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "11381:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2855,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2854,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2845,
                      "src": "11392:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11381:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11351:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2861,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2858,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "11423:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2859,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11423:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2860,
                          "name": "team",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2274,
                          "src": "11437:4:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11423:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746865207465616d2e",
                        "id": 2862,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11443:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        },
                        "value": "Can only be called by the team."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        }
                      ],
                      "id": 2857,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "11415:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2863,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11415:62:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2864,
                  "nodeType": "ExpressionStatement",
                  "src": "11415:62:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2868,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "11495:19:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2866,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2852,
                            "src": "11496:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2867,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "disputed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2294,
                          "src": "11496:18:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4d696c6573746f6e652063616e6e6f742062652064697370757465642e",
                        "id": 2869,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11516:31:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2863105796c1d5b757cbfe5d474e62085dd8adeeaad5674c11c7c8c9a63f671d",
                          "typeString": "literal_string \"Milestone cannot be disputed.\""
                        },
                        "value": "Milestone cannot be disputed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_2863105796c1d5b757cbfe5d474e62085dd8adeeaad5674c11c7c8c9a63f671d",
                          "typeString": "literal_string \"Milestone cannot be disputed.\""
                        }
                      ],
                      "id": 2865,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "11487:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11487:61:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2871,
                  "nodeType": "ExpressionStatement",
                  "src": "11487:61:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2887,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2876,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20710,
                              "src": "11609:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2873,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2852,
                                "src": "11579:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2874,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "11579:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 2875,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balanceOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18894,
                            "src": "11579:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 2877,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11579:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2883,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2878,
                                  "name": "disputeThreshold",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2280,
                                  "src": "11618:16:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2879,
                                        "name": "milestone",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2852,
                                        "src": "11635:9:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                          "typeString": "struct FundingVault.Milestone storage pointer"
                                        }
                                      },
                                      "id": 2880,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "voteToken",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2300,
                                      "src": "11635:19:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                        "typeString": "contract MiniMeToken"
                                      }
                                    },
                                    "id": 2881,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "totalSupply",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19019,
                                    "src": "11635:31:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 2882,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "11635:33:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "11618:50:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2884,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "11617:52:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 2885,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11672:4:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "11617:59:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11579:97:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820766f7465732e",
                        "id": 2888,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11690:19:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        },
                        "value": "Not enough votes."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        }
                      ],
                      "id": 2872,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "11558:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2889,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11558:161:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2890,
                  "nodeType": "ExpressionStatement",
                  "src": "11558:161:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2915,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2895,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2892,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20641,
                                "src": "11833:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2893,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2852,
                                  "src": "11839:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2894,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "claimTime",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2292,
                                "src": "11839:19:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11833:25:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 2896,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11832:27:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2897,
                            "name": "claimToWithdrawTime",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2282,
                            "src": "11862:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2913,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 2904,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 2898,
                                    "name": "additionalTimeToWithdraw",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2284,
                                    "src": "11885:24:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 2902,
                                        "name": "this",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 20710,
                                        "src": "11942:4:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_FundingVault_$3434",
                                          "typeString": "contract FundingVault"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_FundingVault_$3434",
                                          "typeString": "contract FundingVault"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 2899,
                                          "name": "milestone",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2852,
                                          "src": "11912:9:5",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                            "typeString": "struct FundingVault.Milestone storage pointer"
                                          }
                                        },
                                        "id": 2900,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "voteToken",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2300,
                                        "src": "11912:19:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                          "typeString": "contract MiniMeToken"
                                        }
                                      },
                                      "id": 2901,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "balanceOf",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 18894,
                                      "src": "11912:29:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                        "typeString": "function (address) view external returns (uint256)"
                                      }
                                    },
                                    "id": 2903,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11912:35:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "11885:62:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 2905,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "11884:64:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "/",
                            "rightExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 2911,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31303030",
                                    "id": 2906,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "11952:4:5",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1000_by_1",
                                      "typeString": "int_const 1000"
                                    },
                                    "value": "1000"
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 2907,
                                          "name": "milestone",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2852,
                                          "src": "11959:9:5",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                            "typeString": "struct FundingVault.Milestone storage pointer"
                                          }
                                        },
                                        "id": 2908,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "voteToken",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2300,
                                        "src": "11959:19:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                          "typeString": "contract MiniMeToken"
                                        }
                                      },
                                      "id": 2909,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "totalSupply",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 19019,
                                      "src": "11959:31:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                        "typeString": "function () view external returns (uint256)"
                                      }
                                    },
                                    "id": 2910,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11959:33:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "11952:40:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 2912,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "11951:42:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "11884:109:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "11862:131:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11832:161:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "54696d65206c696d697420686173206e6f7420706173736564207965742e",
                        "id": 2916,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12007:32:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_89b632efa1d6dee8fd04105830ebaa65b175eb469d07a87c29985f245a4f63af",
                          "typeString": "literal_string \"Time limit has not passed yet.\""
                        },
                        "value": "Time limit has not passed yet."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_89b632efa1d6dee8fd04105830ebaa65b175eb469d07a87c29985f245a4f63af",
                          "typeString": "literal_string \"Time limit has not passed yet.\""
                        }
                      ],
                      "id": 2891,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "11759:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2917,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11759:290:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2918,
                  "nodeType": "ExpressionStatement",
                  "src": "11759:290:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2929,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2926,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2922,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2852,
                              "src": "12074:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2923,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "amountClaimed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2290,
                            "src": "12074:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2924,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2852,
                              "src": "12098:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2925,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2296,
                            "src": "12098:17:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12074:41:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2927,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2852,
                            "src": "12116:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2928,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeHolders",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2298,
                          "src": "12116:20:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12074:62:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2919,
                        "name": "team",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2274,
                        "src": "12060:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 2921,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12060:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 2930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12060:77:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2931,
                  "nodeType": "ExpressionStatement",
                  "src": "12060:77:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2932,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12194:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2934,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2288,
                      "src": "12194:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2935,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12214:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2936,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "12214:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12194:43:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2938,
                  "nodeType": "ExpressionStatement",
                  "src": "12194:43:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2943,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2939,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12247:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2941,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "12247:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2942,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12273:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12247:27:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2944,
                  "nodeType": "ExpressionStatement",
                  "src": "12247:27:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2949,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2945,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12284:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2947,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2292,
                      "src": "12284:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2948,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12306:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12284:23:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2950,
                  "nodeType": "ExpressionStatement",
                  "src": "12284:23:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2955,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2951,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12317:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2953,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "12317:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2954,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12337:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12317:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2956,
                  "nodeType": "ExpressionStatement",
                  "src": "12317:21:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2961,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2957,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12348:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2959,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "12348:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2960,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12371:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12348:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2962,
                  "nodeType": "ExpressionStatement",
                  "src": "12348:24:5"
                }
              ]
            },
            "documentation": "@dev Withdraw the money claimed in a milestone.\n To be called when a dispute has not been created within the time limit.\n @param _milestoneID The milestone which is disputed.",
            "id": 2964,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2848,
                    "name": "_milestoneID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2845,
                    "src": "11327:12:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2849,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2847,
                  "name": "isNotOuster",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2461,
                  "src": "11315:11:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11315:25:5"
              }
            ],
            "name": "withdraw",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2846,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2845,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2964,
                  "src": "11289:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2844,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "11289:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11288:19:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2850,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11341:0:5"
            },
            "scope": 3434,
            "src": "11271:1109:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3069,
              "nodeType": "Block",
              "src": "12588:840:5",
              "statements": [
                {
                  "assignments": [
                    2970
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2970,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "12598:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2969,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "12598:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2974,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2971,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "12628:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2973,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2972,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2966,
                      "src": "12639:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12628:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12598:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2979,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2976,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "12670:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2977,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12670:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2978,
                          "name": "team",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2274,
                          "src": "12684:4:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "12670:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746865207465616d2e",
                        "id": 2980,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12690:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        },
                        "value": "Can only be called by the team."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        }
                      ],
                      "id": 2975,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "12662:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2981,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12662:62:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2982,
                  "nodeType": "ExpressionStatement",
                  "src": "12662:62:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2984,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2970,
                          "src": "12742:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2985,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastTotalFeePaymentIsTeam",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2306,
                        "src": "12742:35:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5465616d207761736e277420746865206c61737420746f207061792e",
                        "id": 2986,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12779:30:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_12bd09fc42f7ca27791d8f982a2be61842889589cd33321b3b5edc20d47a3377",
                          "typeString": "literal_string \"Team wasn't the last to pay.\""
                        },
                        "value": "Team wasn't the last to pay."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_12bd09fc42f7ca27791d8f982a2be61842889589cd33321b3b5edc20d47a3377",
                          "typeString": "literal_string \"Team wasn't the last to pay.\""
                        }
                      ],
                      "id": 2983,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "12734:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12734:76:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2988,
                  "nodeType": "ExpressionStatement",
                  "src": "12734:76:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2993,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2990,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "12828:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2991,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2970,
                              "src": "12834:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2992,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "lastTotalFeePayment",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2304,
                            "src": "12834:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12828:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2994,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2286,
                          "src": "12866:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12828:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "54696d656f757420686173206e6f74207061737365642e",
                        "id": 2996,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12875:25:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0eaaa2cf230d8a9d32c24732baa068faa7683a865211e2f133ae27b14140edf",
                          "typeString": "literal_string \"Timeout has not passed.\""
                        },
                        "value": "Timeout has not passed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0eaaa2cf230d8a9d32c24732baa068faa7683a865211e2f133ae27b14140edf",
                          "typeString": "literal_string \"Timeout has not passed.\""
                        }
                      ],
                      "id": 2989,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "12820:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12820:81:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2998,
                  "nodeType": "ExpressionStatement",
                  "src": "12820:81:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3006,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3002,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2970,
                              "src": "12926:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3003,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "amountClaimed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2290,
                            "src": "12926:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3004,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2970,
                              "src": "12950:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3005,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2296,
                            "src": "12950:17:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12926:41:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3007,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2970,
                            "src": "12968:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 3008,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeHolders",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2298,
                          "src": "12968:20:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12926:62:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2999,
                        "name": "team",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2274,
                        "src": "12912:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12912:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3010,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12912:77:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3011,
                  "nodeType": "ExpressionStatement",
                  "src": "12912:77:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3012,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13058:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3014,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2288,
                      "src": "13058:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3015,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13078:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3016,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "13078:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13058:43:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3018,
                  "nodeType": "ExpressionStatement",
                  "src": "13058:43:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3023,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3019,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13111:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3021,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "13111:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3022,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13137:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13111:27:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3024,
                  "nodeType": "ExpressionStatement",
                  "src": "13111:27:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3025,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13148:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3027,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2292,
                      "src": "13148:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3028,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13170:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13148:23:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3030,
                  "nodeType": "ExpressionStatement",
                  "src": "13148:23:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3031,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13181:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3033,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "13181:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3034,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13201:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13181:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3036,
                  "nodeType": "ExpressionStatement",
                  "src": "13181:21:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3037,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13212:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3039,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "13212:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3040,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13235:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13212:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3042,
                  "nodeType": "ExpressionStatement",
                  "src": "13212:24:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3043,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13246:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3045,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "voteToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2300,
                      "src": "13246:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 3047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13280:3:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 3046,
                        "name": "MiniMeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19619,
                        "src": "13268:11:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                          "typeString": "type(contract MiniMeToken)"
                        }
                      },
                      "id": 3048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13268:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "src": "13246:38:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "id": 3050,
                  "nodeType": "ExpressionStatement",
                  "src": "13246:38:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3051,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13294:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3053,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastTotalFeePayment",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2304,
                      "src": "13294:29:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13326:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13294:33:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3056,
                  "nodeType": "ExpressionStatement",
                  "src": "13294:33:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3061,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3057,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13337:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3059,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastTotalFeePaymentIsTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2306,
                      "src": "13337:35:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3060,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13375:5:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "13337:43:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3062,
                  "nodeType": "ExpressionStatement",
                  "src": "13337:43:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3063,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13390:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3065,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "payerForHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2308,
                      "src": "13390:25:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 3066,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13418:3:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "13390:31:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3068,
                  "nodeType": "ExpressionStatement",
                  "src": "13390:31:5"
                }
              ]
            },
            "documentation": "@dev Timeout to use when the holders don't pay the fee.\n @param _milestoneID The milestone which is disputed.",
            "id": 3070,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "timeoutByTeam",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2967,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2966,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 3070,
                  "src": "12562:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2965,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12562:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12561:19:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2968,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12588:0:5"
            },
            "scope": 3434,
            "src": "12539:889:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3164,
              "nodeType": "Block",
              "src": "13613:794:5",
              "statements": [
                {
                  "assignments": [
                    3076
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3076,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 3165,
                      "src": "13623:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3075,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "13623:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3080,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3077,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "13653:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 3079,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3078,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3072,
                      "src": "13664:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13653:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13623:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3084,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "13695:36:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3082,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3076,
                            "src": "13696:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 3083,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "lastTotalFeePaymentIsTeam",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2306,
                          "src": "13696:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5465616d207761736e277420746865206c61737420746f207061792e",
                        "id": 3085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13733:30:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_12bd09fc42f7ca27791d8f982a2be61842889589cd33321b3b5edc20d47a3377",
                          "typeString": "literal_string \"Team wasn't the last to pay.\""
                        },
                        "value": "Team wasn't the last to pay."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_12bd09fc42f7ca27791d8f982a2be61842889589cd33321b3b5edc20d47a3377",
                          "typeString": "literal_string \"Team wasn't the last to pay.\""
                        }
                      ],
                      "id": 3081,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "13687:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13687:77:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3087,
                  "nodeType": "ExpressionStatement",
                  "src": "13687:77:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3094,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3089,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "13782:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3090,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3076,
                              "src": "13788:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3091,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "lastTotalFeePayment",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2304,
                            "src": "13788:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13782:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3093,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2286,
                          "src": "13820:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "13782:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "54696d656f757420686173206e6f74207061737365642e",
                        "id": 3095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13829:25:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0eaaa2cf230d8a9d32c24732baa068faa7683a865211e2f133ae27b14140edf",
                          "typeString": "literal_string \"Timeout has not passed.\""
                        },
                        "value": "Timeout has not passed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0eaaa2cf230d8a9d32c24732baa068faa7683a865211e2f133ae27b14140edf",
                          "typeString": "literal_string \"Timeout has not passed.\""
                        }
                      ],
                      "id": 3088,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "13774:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3096,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13774:81:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3097,
                  "nodeType": "ExpressionStatement",
                  "src": "13774:81:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3107,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3103,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3076,
                            "src": "13901:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 3104,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeTeam",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2296,
                          "src": "13901:17:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3105,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3076,
                            "src": "13919:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 3106,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeHolders",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2298,
                          "src": "13919:20:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "13901:38:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3098,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3076,
                          "src": "13866:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 3101,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "payerForHolders",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2308,
                        "src": "13866:25:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3102,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13866:34:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3108,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13866:74:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3109,
                  "nodeType": "ExpressionStatement",
                  "src": "13866:74:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3110,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "13999:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3112,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "13999:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3113,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14025:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13999:27:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3115,
                  "nodeType": "ExpressionStatement",
                  "src": "13999:27:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3116,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14036:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3118,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2292,
                      "src": "14036:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3119,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14058:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14036:23:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3121,
                  "nodeType": "ExpressionStatement",
                  "src": "14036:23:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3122,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14069:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3124,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "disputed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2294,
                      "src": "14069:18:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3125,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14090:5:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "14069:26:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3127,
                  "nodeType": "ExpressionStatement",
                  "src": "14069:26:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3128,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14105:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3130,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "14105:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3131,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14125:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14105:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3133,
                  "nodeType": "ExpressionStatement",
                  "src": "14105:21:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3134,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14136:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3136,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "14136:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3137,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14159:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14136:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3139,
                  "nodeType": "ExpressionStatement",
                  "src": "14136:24:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3140,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14170:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3142,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "voteToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2300,
                      "src": "14170:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 3144,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14204:3:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 3143,
                        "name": "MiniMeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19619,
                        "src": "14192:11:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                          "typeString": "type(contract MiniMeToken)"
                        }
                      },
                      "id": 3145,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14192:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "src": "14170:38:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "id": 3147,
                  "nodeType": "ExpressionStatement",
                  "src": "14170:38:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3152,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3148,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14218:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3150,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastTotalFeePayment",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2304,
                      "src": "14218:29:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14250:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14218:33:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3153,
                  "nodeType": "ExpressionStatement",
                  "src": "14218:33:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3154,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14261:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3156,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "payerForHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2308,
                      "src": "14261:25:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 3157,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14289:3:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "14261:31:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3159,
                  "nodeType": "ExpressionStatement",
                  "src": "14261:31:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3160,
                      "name": "canChangeTeam",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2320,
                      "src": "14303:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 3161,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14319:4:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "14303:20:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3163,
                  "nodeType": "ExpressionStatement",
                  "src": "14303:20:5"
                }
              ]
            },
            "documentation": "@dev Timeout to use whe the team don't pay the fee.\n @param _milestoneID The milestone which is disputed.",
            "id": 3165,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "timeoutByHolders",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3072,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 3165,
                  "src": "13587:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3071,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "13587:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13586:19:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 3074,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13613:0:5"
            },
            "scope": 3434,
            "src": "13561:846:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3189,
              "nodeType": "Block",
              "src": "14617:157:5",
              "statements": [
                {
                  "assignments": [
                    3171
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3171,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 3190,
                      "src": "14627:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3170,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "14627:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3175,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3172,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "14657:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 3174,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3173,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3167,
                      "src": "14668:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "14657:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14627:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3184,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3171,
                          "src": "14726:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 3185,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "disputeID",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2302,
                        "src": "14726:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3186,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "14747:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3181,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "14715:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3182,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "14715:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3176,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 499,
                            "src": "14691:10:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Arbitrator_$4021",
                              "typeString": "contract Arbitrator"
                            }
                          },
                          "id": 3179,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "appeal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3987,
                          "src": "14691:17:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                            "typeString": "function (uint256,bytes memory) payable external"
                          }
                        },
                        "id": 3180,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "14691:23:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value_$",
                          "typeString": "function (uint256) returns (function (uint256,bytes memory) payable external)"
                        }
                      },
                      "id": 3183,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14691:34:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value",
                        "typeString": "function (uint256,bytes memory) payable external"
                      }
                    },
                    "id": 3187,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14691:76:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3188,
                  "nodeType": "ExpressionStatement",
                  "src": "14691:76:5"
                }
              ]
            },
            "documentation": "@dev Appeal an appealable ruling.\n Transfer the funds to the arbitrator.\n @param _milestoneID The milestone which is disputed.",
            "id": 3190,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "appeal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3167,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 3190,
                  "src": "14583:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3166,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14583:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14582:19:5"
            },
            "payable": true,
            "returnParameters": {
              "id": 3169,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14617:0:5"
            },
            "scope": 3434,
            "src": "14567:207:5",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3405,
              "nodeType": "Block",
              "src": "15085:1903:5",
              "statements": [
                {
                  "assignments": [
                    3198
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3198,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 3406,
                      "src": "15095:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3197,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "15095:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3204,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3199,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "15125:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 3203,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3200,
                        "name": "disputeIDToMilstoneID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2316,
                        "src": "15136:21:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 3202,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3201,
                        "name": "_disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3192,
                        "src": "15158:10:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "15136:33:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15125:45:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15095:75:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3220,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3209,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20710,
                              "src": "15304:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3206,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "15274:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3207,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "15274:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 3208,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balanceOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18894,
                            "src": "15274:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 3210,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15274:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3219,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3216,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 3211,
                                  "name": "disputeThreshold",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2280,
                                  "src": "15314:16:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 3212,
                                        "name": "milestone",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3198,
                                        "src": "15331:9:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                          "typeString": "struct FundingVault.Milestone storage pointer"
                                        }
                                      },
                                      "id": 3213,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "voteToken",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2300,
                                      "src": "15331:19:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                        "typeString": "contract MiniMeToken"
                                      }
                                    },
                                    "id": 3214,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "totalSupply",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19019,
                                    "src": "15331:31:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 3215,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15331:33:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "15314:50:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 3217,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "15313:52:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 3218,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15368:4:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "15313:59:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "15274:98:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820766f7465732e",
                        "id": 3221,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15374:19:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        },
                        "value": "Not enough votes."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        }
                      ],
                      "id": 3205,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "15266:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3222,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15266:128:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3223,
                  "nodeType": "ExpressionStatement",
                  "src": "15266:128:5"
                },
                {
                  "assignments": [
                    3225
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3225,
                      "name": "_milestoneID",
                      "nodeType": "VariableDeclaration",
                      "scope": 3406,
                      "src": "15405:17:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3224,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "15405:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3229,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3226,
                      "name": "disputeIDToMilstoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2316,
                      "src": "15425:21:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 3228,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3227,
                      "name": "_disputeID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3192,
                      "src": "15447:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15425:33:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15405:53:5"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3232,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3230,
                      "name": "_ruling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3194,
                      "src": "15472:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3231,
                      "name": "TEAM_WINS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2326,
                      "src": "15481:9:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "15472:18:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3318,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 3316,
                        "name": "_ruling",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3194,
                        "src": "16153:7:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3317,
                        "name": "HOLDERS_WINS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2329,
                        "src": "16162:12:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "src": "16153:21:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 3403,
                    "nodeType": "IfStatement",
                    "src": "16149:833:5",
                    "trueBody": {
                      "id": 3402,
                      "nodeType": "Block",
                      "src": "16176:806:5",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3328,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3324,
                                    "name": "milestone",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3198,
                                    "src": "16229:9:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                      "typeString": "struct FundingVault.Milestone storage pointer"
                                    }
                                  },
                                  "id": 3325,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "feeTeam",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2296,
                                  "src": "16229:17:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3326,
                                    "name": "milestone",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3198,
                                    "src": "16247:9:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                      "typeString": "struct FundingVault.Milestone storage pointer"
                                    }
                                  },
                                  "id": 3327,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "feeHolders",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2298,
                                  "src": "16247:20:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "16229:38:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3319,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3198,
                                  "src": "16194:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 3322,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "payerForHolders",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2308,
                                "src": "16194:25:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 3323,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "transfer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "16194:34:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                "typeString": "function (uint256)"
                              }
                            },
                            "id": 3329,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16194:74:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3330,
                          "nodeType": "ExpressionStatement",
                          "src": "16194:74:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3335,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3331,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16335:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3333,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "amountClaimed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2290,
                              "src": "16335:23:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3334,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16361:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16335:27:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3336,
                          "nodeType": "ExpressionStatement",
                          "src": "16335:27:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3341,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3337,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16380:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3339,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "claimTime",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2292,
                              "src": "16380:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3340,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16402:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16380:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3342,
                          "nodeType": "ExpressionStatement",
                          "src": "16380:23:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3347,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3343,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16421:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3345,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "disputed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2294,
                              "src": "16421:18:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3346,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16442:5:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "16421:26:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 3348,
                          "nodeType": "ExpressionStatement",
                          "src": "16421:26:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3353,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3349,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16465:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3351,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "feeTeam",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2296,
                              "src": "16465:17:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3352,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16485:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16465:21:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3354,
                          "nodeType": "ExpressionStatement",
                          "src": "16465:21:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3359,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3355,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16504:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3357,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "feeHolders",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2298,
                              "src": "16504:20:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3358,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16527:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16504:24:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3360,
                          "nodeType": "ExpressionStatement",
                          "src": "16504:24:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3367,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3361,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16546:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3363,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "16546:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 3365,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16580:3:5",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 3364,
                                "name": "MiniMeToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19619,
                                "src": "16568:11:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                                  "typeString": "type(contract MiniMeToken)"
                                }
                              },
                              "id": 3366,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "16568:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "src": "16546:38:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                              "typeString": "contract MiniMeToken"
                            }
                          },
                          "id": 3368,
                          "nodeType": "ExpressionStatement",
                          "src": "16546:38:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3373,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3369,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16602:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3371,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "disputeID",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2302,
                              "src": "16602:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3372,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16624:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16602:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3374,
                          "nodeType": "ExpressionStatement",
                          "src": "16602:23:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3379,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3375,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16643:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3377,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePayment",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2304,
                              "src": "16643:29:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3378,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16675:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16643:33:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3380,
                          "nodeType": "ExpressionStatement",
                          "src": "16643:33:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3385,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3381,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16694:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3383,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePaymentIsTeam",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2306,
                              "src": "16694:35:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3384,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16732:5:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "16694:43:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 3386,
                          "nodeType": "ExpressionStatement",
                          "src": "16694:43:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3391,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3387,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16755:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3389,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "payerForHolders",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2308,
                              "src": "16755:25:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 3390,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16783:3:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            },
                            "src": "16755:31:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 3392,
                          "nodeType": "ExpressionStatement",
                          "src": "16755:31:5"
                        },
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3395,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3393,
                              "name": "ousterID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2318,
                              "src": "16808:8:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3394,
                              "name": "_milestoneID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3225,
                              "src": "16820:12:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "16808:24:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 3401,
                          "nodeType": "IfStatement",
                          "src": "16804:164:5",
                          "trueBody": {
                            "id": 3400,
                            "nodeType": "Block",
                            "src": "16835:133:5",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3398,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 3396,
                                    "name": "canChangeTeam",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2320,
                                    "src": "16891:13:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "74727565",
                                    "id": 3397,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16907:4:5",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "true"
                                  },
                                  "src": "16891:20:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 3399,
                                "nodeType": "ExpressionStatement",
                                "src": "16891:20:5"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 3404,
                  "nodeType": "IfStatement",
                  "src": "15468:1514:5",
                  "trueBody": {
                    "id": 3315,
                    "nodeType": "Block",
                    "src": "15492:651:5",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3243,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3240,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3236,
                                    "name": "milestone",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3198,
                                    "src": "15520:9:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                      "typeString": "struct FundingVault.Milestone storage pointer"
                                    }
                                  },
                                  "id": 3237,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "amountClaimed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2290,
                                  "src": "15520:23:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3238,
                                    "name": "milestone",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3198,
                                    "src": "15544:9:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                      "typeString": "struct FundingVault.Milestone storage pointer"
                                    }
                                  },
                                  "id": 3239,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "feeTeam",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2296,
                                  "src": "15544:17:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "15520:41:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3241,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3198,
                                  "src": "15562:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 3242,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "feeHolders",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2298,
                                "src": "15562:20:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "15520:62:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3233,
                              "name": "team",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2274,
                              "src": "15506:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 3235,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "15506:13:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3244,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15506:77:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3245,
                        "nodeType": "ExpressionStatement",
                        "src": "15506:77:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3246,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15656:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3248,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "amount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2288,
                            "src": "15656:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "-=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3249,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15676:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3250,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "amountClaimed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2290,
                            "src": "15676:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "15656:43:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3252,
                        "nodeType": "ExpressionStatement",
                        "src": "15656:43:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3257,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3253,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15713:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3255,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "amountClaimed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2290,
                            "src": "15713:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3256,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15739:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15713:27:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3258,
                        "nodeType": "ExpressionStatement",
                        "src": "15713:27:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3263,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3259,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15754:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3261,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "claimTime",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2292,
                            "src": "15754:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3262,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15776:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15754:23:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3264,
                        "nodeType": "ExpressionStatement",
                        "src": "15754:23:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3269,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3265,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15791:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3267,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "disputed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2294,
                            "src": "15791:18:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 3268,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15812:5:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "15791:26:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 3270,
                        "nodeType": "ExpressionStatement",
                        "src": "15791:26:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3275,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3271,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15831:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3273,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "feeTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2296,
                            "src": "15831:17:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3274,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15851:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15831:21:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3276,
                        "nodeType": "ExpressionStatement",
                        "src": "15831:21:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3281,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3277,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15866:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3279,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "feeHolders",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2298,
                            "src": "15866:20:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3280,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15889:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15866:24:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3282,
                        "nodeType": "ExpressionStatement",
                        "src": "15866:24:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3289,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3283,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15904:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3285,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "voteToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2300,
                            "src": "15904:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                              "typeString": "contract MiniMeToken"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 3287,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15938:3:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 3286,
                              "name": "MiniMeToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19619,
                              "src": "15926:11:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                                "typeString": "type(contract MiniMeToken)"
                              }
                            },
                            "id": 3288,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15926:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                              "typeString": "contract MiniMeToken"
                            }
                          },
                          "src": "15904:38:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                            "typeString": "contract MiniMeToken"
                          }
                        },
                        "id": 3290,
                        "nodeType": "ExpressionStatement",
                        "src": "15904:38:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3295,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3291,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15956:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3293,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "disputeID",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2302,
                            "src": "15956:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3294,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15978:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15956:23:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3296,
                        "nodeType": "ExpressionStatement",
                        "src": "15956:23:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3301,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3297,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15993:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3299,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "lastTotalFeePayment",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2304,
                            "src": "15993:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3300,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16025:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15993:33:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3302,
                        "nodeType": "ExpressionStatement",
                        "src": "15993:33:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3303,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "16040:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3305,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "lastTotalFeePaymentIsTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2306,
                            "src": "16040:35:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 3306,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16078:5:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "16040:43:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 3308,
                        "nodeType": "ExpressionStatement",
                        "src": "16040:43:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3313,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3309,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "16097:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3311,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "payerForHolders",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2308,
                            "src": "16097:25:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 3312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16125:3:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          },
                          "src": "16097:31:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 3314,
                        "nodeType": "ExpressionStatement",
                        "src": "16097:31:5"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Execute a ruling of a dispute.\n @param _disputeID ID of the dispute in the Arbitrator contract.\n @param _ruling Ruling given by the arbitrator. Note that 0 is reserved for \"Not able/wanting to make a decision\".",
            "id": 3406,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "executeRuling",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3192,
                  "name": "_disputeID",
                  "nodeType": "VariableDeclaration",
                  "scope": 3406,
                  "src": "15046:15:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3191,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "15046:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3194,
                  "name": "_ruling",
                  "nodeType": "VariableDeclaration",
                  "scope": 3406,
                  "src": "15063:12:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3193,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "15063:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15045:31:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 3196,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15085:0:5"
            },
            "scope": 3434,
            "src": "15023:1965:5",
            "stateMutability": "nonpayable",
            "superFunction": 594,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3432,
              "nodeType": "Block",
              "src": "17242:234:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3412,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "17260:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "17260:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3414,
                          "name": "funder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2278,
                          "src": "17274:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "17260:20:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652063616c6c6572206d757374206265207468652066756e6465722e",
                        "id": 3416,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17282:32:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0c9d3b399a3d68d0148c673da4c550101d07b772f20f362fde785fdba4f21aa6",
                          "typeString": "literal_string \"The caller must be the funder.\""
                        },
                        "value": "The caller must be the funder."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0c9d3b399a3d68d0148c673da4c550101d07b772f20f362fde785fdba4f21aa6",
                          "typeString": "literal_string \"The caller must be the funder.\""
                        }
                      ],
                      "id": 3411,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "17252:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3417,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17252:63:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3418,
                  "nodeType": "ExpressionStatement",
                  "src": "17252:63:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3420,
                        "name": "canChangeTeam",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2320,
                        "src": "17333:13:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4368616e67696e67207465616d73206973206e6f7420616c6c6f7765642e",
                        "id": 3421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17348:32:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a3316f77582e0f5551f41b93daad17390905007213786d8b9b255be098a57e54",
                          "typeString": "literal_string \"Changing teams is not allowed.\""
                        },
                        "value": "Changing teams is not allowed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a3316f77582e0f5551f41b93daad17390905007213786d8b9b255be098a57e54",
                          "typeString": "literal_string \"Changing teams is not allowed.\""
                        }
                      ],
                      "id": 3419,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "17325:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17325:56:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3423,
                  "nodeType": "ExpressionStatement",
                  "src": "17325:56:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3426,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3424,
                      "name": "team",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2274,
                      "src": "17391:4:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3425,
                      "name": "_newTeam",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3408,
                      "src": "17398:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17391:15:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3427,
                  "nodeType": "ExpressionStatement",
                  "src": "17391:15:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3430,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3428,
                      "name": "canChangeTeam",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2320,
                      "src": "17416:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3429,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17432:5:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "17416:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3431,
                  "nodeType": "ExpressionStatement",
                  "src": "17416:21:5"
                }
              ]
            },
            "documentation": "@dev Change the team. Note that the holders would have to make\n  the funder a votable contract if they want a vote on who the new team will be.\n  @param _newTeam the new team.",
            "id": 3433,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "changeTeam",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3408,
                  "name": "_newTeam",
                  "nodeType": "VariableDeclaration",
                  "scope": 3433,
                  "src": "17217:16:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3407,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17217:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17216:18:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 3410,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17242:0:5"
            },
            "scope": 3434,
            "src": "17197:279:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3435,
        "src": "1116:16363:5"
      }
    ],
    "src": "155:17325:5"
  },
  "legacyAST": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/ArbitrableTokens/FundingVault.sol",
    "exportedSymbols": {
      "FundingVault": [
        3434
      ]
    },
    "id": 3435,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2268,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".15"
        ],
        "nodeType": "PragmaDirective",
        "src": "155:24:5"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/Arbitrable.sol",
        "file": "../Arbitrable.sol",
        "id": 2269,
        "nodeType": "ImportDirective",
        "scope": 3435,
        "sourceUnit": 596,
        "src": "181:27:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "minimetoken/contracts/MiniMeToken.sol",
        "file": "minimetoken/contracts/MiniMeToken.sol",
        "id": 2270,
        "nodeType": "ImportDirective",
        "scope": 3435,
        "sourceUnit": 19661,
        "src": "209:47:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 2271,
              "name": "Arbitrable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 595,
              "src": "1141:10:5",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Arbitrable_$595",
                "typeString": "contract Arbitrable"
              }
            },
            "id": 2272,
            "nodeType": "InheritanceSpecifier",
            "src": "1141:10:5"
          }
        ],
        "contractDependencies": [
          595
        ],
        "contractKind": "contract",
        "documentation": "@title Funding Vault\n A contract storing the ETH raised in a crowdfunding event.\n Funds are delivered when milestones are reached.\n The team can claim a milestone is reached. Token holders will have some time to dispute that claim.\n When some token holders vote to dispute the claim, extra time is given to other token holders to dispute that claim.\n If a sufficient amount of token holders dispute it. A dispute is created and the arbitrator will decide if the milestone has been reached.\n When there is a disagreement a vote token is created. Holders should send the voteToken to the Vault to disagree with the milestone.\n Token holders can also claim that the team failed to deliver and ask for the remaining ETH to be given back to a different contract.\n This contract can be the vault of another team, or a contract to reimburse.",
        "fullyImplemented": true,
        "id": 3434,
        "linearizedBaseContracts": [
          3434,
          595
        ],
        "name": "FundingVault",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 2274,
            "name": "team",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1158:19:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2273,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1158:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2276,
            "name": "token",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1183:24:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_MiniMeToken_$19619",
              "typeString": "contract MiniMeToken"
            },
            "typeName": {
              "contractScope": null,
              "id": 2275,
              "name": "MiniMeToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 19619,
              "src": "1183:11:5",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                "typeString": "contract MiniMeToken"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2278,
            "name": "funder",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1213:21:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2277,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1213:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2280,
            "name": "disputeThreshold",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1240:28:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2279,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1240:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2282,
            "name": "claimToWithdrawTime",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1274:31:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2281,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1274:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2284,
            "name": "additionalTimeToWithdraw",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1311:36:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2283,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1311:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2286,
            "name": "timeout",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "1353:19:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2285,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1353:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "FundingVault.Milestone",
            "id": 2309,
            "members": [
              {
                "constant": false,
                "id": 2288,
                "name": "amount",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1405:11:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2287,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1405:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2290,
                "name": "amountClaimed",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1490:18:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2289,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1490:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2292,
                "name": "claimTime",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1558:14:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2291,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1558:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2294,
                "name": "disputed",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1658:13:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 2293,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1658:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2296,
                "name": "feeTeam",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1719:12:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2295,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1719:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2298,
                "name": "feeHolders",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1779:15:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2297,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1779:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2300,
                "name": "voteToken",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1846:21:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                  "typeString": "contract MiniMeToken"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 2299,
                  "name": "MiniMeToken",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 19619,
                  "src": "1846:11:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                    "typeString": "contract MiniMeToken"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2302,
                "name": "disputeID",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1921:14:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2301,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1921:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2304,
                "name": "lastTotalFeePayment",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "1993:24:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2303,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1993:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2306,
                "name": "lastTotalFeePaymentIsTeam",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "2087:30:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 2305,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2087:4:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2308,
                "name": "payerForHolders",
                "nodeType": "VariableDeclaration",
                "scope": 2309,
                "src": "2177:23:5",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 2307,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2177:7:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Milestone",
            "nodeType": "StructDefinition",
            "scope": 3434,
            "src": "1378:920:5",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2312,
            "name": "milestones",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2303:29:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
              "typeString": "struct FundingVault.Milestone[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 2310,
                "name": "Milestone",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 2309,
                "src": "2303:9:5",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                  "typeString": "struct FundingVault.Milestone"
                }
              },
              "id": 2311,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "2303:11:5",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage_ptr",
                "typeString": "struct FundingVault.Milestone[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2316,
            "name": "disputeIDToMilstoneID",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2338:50:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 2315,
              "keyType": {
                "id": 2313,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "2346:4:5",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "2338:21:5",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueType": {
                "id": 2314,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "2354:4:5",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2318,
            "name": "ousterID",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2429:13:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2317,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "2429:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 2320,
            "name": "canChangeTeam",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2570:18:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 2319,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "2570:4:5",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2323,
            "name": "AMOUNT_OF_CHOICES",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2713:36:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2321,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "2713:5:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 2322,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2748:1:5",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2326,
            "name": "TEAM_WINS",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2755:28:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2324,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "2755:5:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 2325,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2782:1:5",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 2329,
            "name": "HOLDERS_WINS",
            "nodeType": "VariableDeclaration",
            "scope": 3434,
            "src": "2789:31:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 2327,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "2789:5:5",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 2328,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2819:1:5",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2411,
              "nodeType": "Block",
              "src": "3939:804:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2356,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2354,
                      "name": "team",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2274,
                      "src": "3949:4:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2355,
                      "name": "_team",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2335,
                      "src": "3956:5:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3949:12:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2357,
                  "nodeType": "ExpressionStatement",
                  "src": "3949:12:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2362,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2358,
                      "name": "token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2276,
                      "src": "3971:5:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2360,
                          "name": "_token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2337,
                          "src": "3991:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 2359,
                        "name": "MiniMeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19619,
                        "src": "3979:11:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                          "typeString": "type(contract MiniMeToken)"
                        }
                      },
                      "id": 2361,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3979:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "src": "3971:27:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "id": 2363,
                  "nodeType": "ExpressionStatement",
                  "src": "3971:27:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2366,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2364,
                      "name": "funder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2278,
                      "src": "4008:6:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2365,
                      "name": "_funder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2339,
                      "src": "4017:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4008:16:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2367,
                  "nodeType": "ExpressionStatement",
                  "src": "4008:16:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2370,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2368,
                      "name": "disputeThreshold",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2280,
                      "src": "4034:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2369,
                      "name": "_disputeThreshold",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2341,
                      "src": "4053:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4034:36:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2371,
                  "nodeType": "ExpressionStatement",
                  "src": "4034:36:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2372,
                      "name": "claimToWithdrawTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2282,
                      "src": "4080:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2373,
                      "name": "_claimToWithdrawTime",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2343,
                      "src": "4102:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4080:42:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2375,
                  "nodeType": "ExpressionStatement",
                  "src": "4080:42:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2376,
                      "name": "additionalTimeToWithdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2284,
                      "src": "4132:24:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2377,
                      "name": "_additionalTimeToWithdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2345,
                      "src": "4159:25:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4132:52:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2379,
                  "nodeType": "ExpressionStatement",
                  "src": "4132:52:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2382,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2380,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2286,
                      "src": "4194:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2381,
                      "name": "_timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2347,
                      "src": "4204:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4194:18:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2383,
                  "nodeType": "ExpressionStatement",
                  "src": "4194:18:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2405,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2384,
                      "name": "ousterID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2318,
                      "src": "4222:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2404,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2388,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4377:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2389,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4406:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2390,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4431:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 2391,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4455:5:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2392,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4482:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2393,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4508:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "307830",
                                    "id": 2395,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4545:3:5",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0x0"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "id": 2394,
                                  "name": "MiniMeToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 19619,
                                  "src": "4533:11:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                                    "typeString": "type(contract MiniMeToken)"
                                  }
                                },
                                "id": 2396,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4533:16:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                  "typeString": "contract MiniMeToken"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2397,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4573:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4608:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 2399,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4649:5:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 2400,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4684:3:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2387,
                              "name": "Milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2309,
                              "src": "4249:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Milestone_$2309_storage_ptr_$",
                                "typeString": "type(struct FundingVault.Milestone storage pointer)"
                              }
                            },
                            "id": 2401,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [
                              "amount",
                              "amountClaimed",
                              "claimTime",
                              "disputed",
                              "feeTeam",
                              "feeHolders",
                              "voteToken",
                              "disputeID",
                              "lastTotalFeePayment",
                              "lastTotalFeePaymentIsTeam",
                              "payerForHolders"
                            ],
                            "nodeType": "FunctionCall",
                            "src": "4249:453:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_memory",
                              "typeString": "struct FundingVault.Milestone memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Milestone_$2309_memory",
                              "typeString": "struct FundingVault.Milestone memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2385,
                            "name": "milestones",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2312,
                            "src": "4233:10:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                              "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                            }
                          },
                          "id": 2386,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "push",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4233:15:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$2309_storage_$returns$_t_uint256_$",
                            "typeString": "function (struct FundingVault.Milestone storage ref) returns (uint256)"
                          }
                        },
                        "id": 2402,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4233:470:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 2403,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4704:1:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "4233:472:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4222:483:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2406,
                  "nodeType": "ExpressionStatement",
                  "src": "4222:483:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2407,
                      "name": "canChangeTeam",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2320,
                      "src": "4715:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 2408,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4731:5:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "4715:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2410,
                  "nodeType": "ExpressionStatement",
                  "src": "4715:21:5"
                }
              ]
            },
            "documentation": "@dev Constructor. Choose the arbitrator.\n @param _arbitrator The arbitrator of the contract.\n @param _team The address of the team who will be able to claim milestone completion.\n @param _token The token whose holders are able to dispute milestone claims.\n @param _funder The party putting funds in the vault.\n @param _disputeThreshold The ‱ of tokens required to dispute a milestone.\n @param _claimToWithdrawTime The base time in seconds after a claim is considered non-disputed (i.e  if no token holders dispute it).\n @param _additionalTimeToWithdraw The time in seconds which is added per ‱ of tokens disputing the claim.\n @param _timeout Maximum time to pay arbitration fees after the other side did.",
            "id": 2412,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2350,
                    "name": "_arbitrator",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2331,
                    "src": "3905:11:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Arbitrator_$4021",
                      "typeString": "contract Arbitrator"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 2351,
                    "name": "_arbitratorExtraData",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2333,
                    "src": "3917:20:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  }
                ],
                "id": 2352,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2349,
                  "name": "Arbitrable",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 595,
                  "src": "3894:10:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Arbitrable_$595_$",
                    "typeString": "type(contract Arbitrable)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3894:44:5"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2348,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2331,
                  "name": "_arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3620:22:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Arbitrator_$4021",
                    "typeString": "contract Arbitrator"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 2330,
                    "name": "Arbitrator",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4021,
                    "src": "3620:10:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Arbitrator_$4021",
                      "typeString": "contract Arbitrator"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2333,
                  "name": "_arbitratorExtraData",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3652:26:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2332,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3652:5:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2335,
                  "name": "_team",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3688:13:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2334,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3688:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2337,
                  "name": "_token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3711:14:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2336,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3711:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2339,
                  "name": "_funder",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3735:15:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2338,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3735:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2341,
                  "name": "_disputeThreshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3760:22:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2340,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3760:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2343,
                  "name": "_claimToWithdrawTime",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3792:25:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2342,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3792:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2345,
                  "name": "_additionalTimeToWithdraw",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3827:30:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2344,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3827:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2347,
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 2412,
                  "src": "3867:13:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2346,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3867:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3610:276:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2353,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3939:0:5"
            },
            "scope": 3434,
            "src": "3599:1144:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2447,
              "nodeType": "Block",
              "src": "4937:481:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2418,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "4955:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2419,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4955:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2420,
                          "name": "funder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2278,
                          "src": "4969:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "4955:20:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652063616c6c6572206d757374206265207468652066756e6465722e",
                        "id": 2422,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4977:32:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0c9d3b399a3d68d0148c673da4c550101d07b772f20f362fde785fdba4f21aa6",
                          "typeString": "literal_string \"The caller must be the funder.\""
                        },
                        "value": "The caller must be the funder."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0c9d3b399a3d68d0148c673da4c550101d07b772f20f362fde785fdba4f21aa6",
                          "typeString": "literal_string \"The caller must be the funder.\""
                        }
                      ],
                      "id": 2417,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "4947:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2423,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4947:63:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2424,
                  "nodeType": "ExpressionStatement",
                  "src": "4947:63:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2428,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20639,
                                "src": "5075:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2429,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5075:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2430,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5112:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2431,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5137:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 2432,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5161:5:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2433,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5188:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2434,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5214:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 2436,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5251:3:5",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2435,
                                "name": "MiniMeToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19619,
                                "src": "5239:11:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                                  "typeString": "type(contract MiniMeToken)"
                                }
                              },
                              "id": 2437,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5239:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2438,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5279:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2439,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5314:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 2440,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5355:5:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 2441,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5390:3:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2427,
                            "name": "Milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2309,
                            "src": "5044:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Milestone_$2309_storage_ptr_$",
                              "typeString": "type(struct FundingVault.Milestone storage pointer)"
                            }
                          },
                          "id": 2442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [
                            "amount",
                            "amountClaimed",
                            "claimTime",
                            "disputed",
                            "feeTeam",
                            "feeHolders",
                            "voteToken",
                            "disputeID",
                            "lastTotalFeePayment",
                            "lastTotalFeePaymentIsTeam",
                            "payerForHolders"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "5044:364:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_memory",
                            "typeString": "struct FundingVault.Milestone memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Milestone_$2309_memory",
                            "typeString": "struct FundingVault.Milestone memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2425,
                          "name": "milestones",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2312,
                          "src": "5028:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                            "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                          }
                        },
                        "id": 2426,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "push",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5028:15:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$2309_storage_$returns$_t_uint256_$",
                          "typeString": "function (struct FundingVault.Milestone storage ref) returns (uint256)"
                        }
                      },
                      "id": 2443,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5028:381:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 2444,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5410:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "5028:383:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2416,
                  "id": 2446,
                  "nodeType": "Return",
                  "src": "5021:390:5"
                }
              ]
            },
            "documentation": "@dev Give the funds for a milestone.\n @return milestoneID The ID of the milestone which was created.",
            "id": 2448,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "fundMilestone",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2413,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4893:2:5"
            },
            "payable": true,
            "returnParameters": {
              "id": 2416,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2415,
                  "name": "milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2448,
                  "src": "4919:16:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2414,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4919:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4918:18:5"
            },
            "scope": 3434,
            "src": "4871:547:5",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2460,
              "nodeType": "Block",
              "src": "5544:106:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2455,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2453,
                          "name": "ousterID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2318,
                          "src": "5562:8:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2454,
                          "name": "_milestoneID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2450,
                          "src": "5574:12:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5562:24:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d696c6573746f6e652e",
                        "id": 2456,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5588:43:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6b53890adf9be771bbd0ad03506a6f48fbd3e04bc518544a1349b790e4806a4b",
                          "typeString": "literal_string \"Milestone cannot be the ouster milestone.\""
                        },
                        "value": "Milestone cannot be the ouster milestone."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6b53890adf9be771bbd0ad03506a6f48fbd3e04bc518544a1349b790e4806a4b",
                          "typeString": "literal_string \"Milestone cannot be the ouster milestone.\""
                        }
                      ],
                      "id": 2452,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "5554:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5554:78:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2458,
                  "nodeType": "ExpressionStatement",
                  "src": "5554:78:5"
                },
                {
                  "id": 2459,
                  "nodeType": "PlaceholderStatement",
                  "src": "5642:1:5"
                }
              ]
            },
            "documentation": null,
            "id": 2461,
            "name": "isNotOuster",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 2451,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2450,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2461,
                  "src": "5525:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2449,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5525:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5524:19:5"
            },
            "src": "5504:146:5",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2507,
              "nodeType": "Block",
              "src": "5991:366:5",
              "statements": [
                {
                  "assignments": [
                    2472
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2472,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2508,
                      "src": "6001:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2471,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "6001:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2476,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2473,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "6031:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2475,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2474,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2463,
                      "src": "6042:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6031:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6001:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2481,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2478,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "6073:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2479,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6073:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2480,
                          "name": "team",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2274,
                          "src": "6087:4:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "6073:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746865207465616d2e",
                        "id": 2482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6093:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        },
                        "value": "Can only be called by the team."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        }
                      ],
                      "id": 2477,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6065:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6065:62:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2484,
                  "nodeType": "ExpressionStatement",
                  "src": "6065:62:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2489,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2486,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2472,
                            "src": "6145:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2487,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "claimTime",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2292,
                          "src": "6145:19:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2488,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6168:1:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "6145:24:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e6e6f742062652063616c6c6564207768656e206f7468657220636c61696d7320617265206163746976652e",
                        "id": 2490,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6171:48:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1c2eefcc6a8c19d7c8099cc465ae30a6f8c4074902464309c801bdecab045b6f",
                          "typeString": "literal_string \"Cannot be called when other claims are active.\""
                        },
                        "value": "Cannot be called when other claims are active."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1c2eefcc6a8c19d7c8099cc465ae30a6f8c4074902464309c801bdecab045b6f",
                          "typeString": "literal_string \"Cannot be called when other claims are active.\""
                        }
                      ],
                      "id": 2485,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6137:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6137:83:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2492,
                  "nodeType": "ExpressionStatement",
                  "src": "6137:83:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2497,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2494,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2472,
                            "src": "6277:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2495,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "amount",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2288,
                          "src": "6277:16:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2496,
                          "name": "_amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2465,
                          "src": "6297:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6277:27:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "544f444f2e",
                        "id": 2498,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6306:7:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_deea7c8036d5801eaf1b814363946dcfcabcf39e8525400cc992191a3ff56ff5",
                          "typeString": "literal_string \"TODO.\""
                        },
                        "value": "TODO."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_deea7c8036d5801eaf1b814363946dcfcabcf39e8525400cc992191a3ff56ff5",
                          "typeString": "literal_string \"TODO.\""
                        }
                      ],
                      "id": 2493,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6269:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2499,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6269:45:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2500,
                  "nodeType": "ExpressionStatement",
                  "src": "6269:45:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2501,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2472,
                        "src": "6325:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2503,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2292,
                      "src": "6325:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2504,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20641,
                      "src": "6347:3:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6325:25:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2506,
                  "nodeType": "ExpressionStatement",
                  "src": "6325:25:5"
                }
              ]
            },
            "documentation": "@dev Claim funds of a milestone.\n @param _milestoneID The ID of the milestone.\n @param _amount The amount claim. Note that the team can claim less than the amount of a milestone. This allows partial completion claims.",
            "id": 2508,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2468,
                    "name": "_milestoneID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2463,
                    "src": "5977:12:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2469,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2467,
                  "name": "isNotOuster",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2461,
                  "src": "5965:11:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5965:25:5"
              }
            ],
            "name": "claimMilestone",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2466,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2463,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2508,
                  "src": "5925:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2462,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5925:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2465,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2508,
                  "src": "5944:12:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2464,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5944:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5924:33:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2470,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5991:0:5"
            },
            "scope": 3434,
            "src": "5901:456:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2560,
              "nodeType": "Block",
              "src": "6619:482:5",
              "statements": [
                {
                  "assignments": [
                    2514
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2514,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2561,
                      "src": "6629:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2513,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "6629:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2518,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2515,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "6659:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2517,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2516,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2510,
                      "src": "6670:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6659:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6629:54:5"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2519,
                      "name": "ousterID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2318,
                      "src": "6783:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2520,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2510,
                      "src": "6795:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6783:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2531,
                  "nodeType": "IfStatement",
                  "src": "6779:112:5",
                  "trueBody": {
                    "id": 2530,
                    "nodeType": "Block",
                    "src": "6809:82:5",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2526,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2523,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2514,
                                  "src": "6818:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2524,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "claimTime",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2292,
                                "src": "6818:19:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 2525,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6841:1:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "6818:24:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "546865206d696c6573746f6e65206d75737420626520636c61696d656420627920746865207465616d2e",
                              "id": 2527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6844:44:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_72468c3c7f9c35e6d80959589679fbcb429c80f3088ae00de2cfb3c392f13346",
                                "typeString": "literal_string \"The milestone must be claimed by the team.\""
                              },
                              "value": "The milestone must be claimed by the team."
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_72468c3c7f9c35e6d80959589679fbcb429c80f3088ae00de2cfb3c392f13346",
                                "typeString": "literal_string \"The milestone must be claimed by the team.\""
                              }
                            ],
                            "id": 2522,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              20642,
                              20643
                            ],
                            "referencedDeclaration": 20643,
                            "src": "6810:7:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 2528,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6810:79:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2529,
                        "nodeType": "ExpressionStatement",
                        "src": "6810:79:5"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2534,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2514,
                                "src": "6916:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2535,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "6916:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            ],
                            "id": 2533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "6908:7:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6908:28:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 2537,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6940:3:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        },
                        "src": "6908:35:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "54686520746f6b656e2068617320616c7265616479206265656e206d6164652e",
                        "id": 2539,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6945:34:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_bc153df1873ea220909c47e551e88a0d328896cbfe357faa2151bfb48b701e44",
                          "typeString": "literal_string \"The token has already been made.\""
                        },
                        "value": "The token has already been made."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_bc153df1873ea220909c47e551e88a0d328896cbfe357faa2151bfb48b701e44",
                          "typeString": "literal_string \"The token has already been made.\""
                        }
                      ],
                      "id": 2532,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6900:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6900:80:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2541,
                  "nodeType": "ExpressionStatement",
                  "src": "6900:80:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2542,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2514,
                        "src": "6991:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2544,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "voteToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2300,
                      "src": "6991:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "",
                              "id": 2548,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7048:2:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2549,
                                  "name": "token",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2276,
                                  "src": "7052:5:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                    "typeString": "contract MiniMeToken"
                                  }
                                },
                                "id": 2550,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "decimals",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 18611,
                                "src": "7052:14:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                                  "typeString": "function () view external returns (uint8)"
                                }
                              },
                              "id": 2551,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7052:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "",
                              "id": 2552,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7070:2:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2553,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20629,
                                "src": "7074:5:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 2554,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "number",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "7074:12:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 2555,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7088:4:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2546,
                              "name": "token",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2276,
                              "src": "7025:5:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 2547,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "createCloneToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 19177,
                            "src": "7025:22:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_uint8_$_t_string_memory_ptr_$_t_uint256_$_t_bool_$returns$_t_address_$",
                              "typeString": "function (string memory,uint8,string memory,uint256,bool) external returns (address)"
                            }
                          },
                          "id": 2556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7025:68:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 2545,
                        "name": "MiniMeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19619,
                        "src": "7013:11:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                          "typeString": "type(contract MiniMeToken)"
                        }
                      },
                      "id": 2557,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7013:81:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "src": "6991:103:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "id": 2559,
                  "nodeType": "ExpressionStatement",
                  "src": "6991:103:5"
                }
              ]
            },
            "documentation": "@dev Make a forked token to dispute a claim.\n This avoid creating a token all the time, since most milestones should not be disputed.\n @param _milestoneID The ID of the milestone.",
            "id": 2561,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "makeVoteToken",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2511,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2510,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2561,
                  "src": "6593:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2509,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6593:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6592:19:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2512,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6619:0:5"
            },
            "scope": 3434,
            "src": "6570:531:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2682,
              "nodeType": "Block",
              "src": "7654:1252:5",
              "statements": [
                {
                  "assignments": [
                    2567
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2567,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2683,
                      "src": "7664:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2566,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "7664:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2571,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2568,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "7694:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2570,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2569,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2563,
                      "src": "7705:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7694:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7664:54:5"
                },
                {
                  "assignments": [
                    2573
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2573,
                      "name": "arbitrationCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 2683,
                      "src": "7728:20:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2572,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "7728:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2578,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2576,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "7778:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2574,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "7751:10:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      "id": 2575,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "arbitrationCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3967,
                      "src": "7751:26:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (bytes memory) view external returns (uint256)"
                      }
                    },
                    "id": 2577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7751:47:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7728:70:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2582,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "7816:19:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2580,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2567,
                            "src": "7817:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2581,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "disputed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2294,
                          "src": "7817:18:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792064697370757465642e",
                        "id": 2583,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7837:43:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c89acdf3ae213bf1bfe0985ee6e8516fb4f5e2dc1beeccca6e6210536f20b5f",
                          "typeString": "literal_string \"The milestone cannot be already disputed.\""
                        },
                        "value": "The milestone cannot be already disputed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c89acdf3ae213bf1bfe0985ee6e8516fb4f5e2dc1beeccca6e6210536f20b5f",
                          "typeString": "literal_string \"The milestone cannot be already disputed.\""
                        }
                      ],
                      "id": 2579,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "7808:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2584,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7808:73:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2585,
                  "nodeType": "ExpressionStatement",
                  "src": "7808:73:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2601,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2590,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20710,
                              "src": "7929:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2587,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2567,
                                "src": "7899:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2588,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "7899:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 2589,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balanceOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18894,
                            "src": "7899:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 2591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7899:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2600,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2597,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2592,
                                  "name": "disputeThreshold",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2280,
                                  "src": "7939:16:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2593,
                                        "name": "milestone",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2567,
                                        "src": "7956:9:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                          "typeString": "struct FundingVault.Milestone storage pointer"
                                        }
                                      },
                                      "id": 2594,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "voteToken",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2300,
                                      "src": "7956:19:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                        "typeString": "contract MiniMeToken"
                                      }
                                    },
                                    "id": 2595,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "totalSupply",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19019,
                                    "src": "7956:31:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 2596,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7956:33:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7939:50:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2598,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "7938:52:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 2599,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7993:4:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "7938:59:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7899:98:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820766f7465732e",
                        "id": 2602,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7999:19:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        },
                        "value": "Not enough votes."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        }
                      ],
                      "id": 2586,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "7891:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7891:128:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2604,
                  "nodeType": "ExpressionStatement",
                  "src": "7891:128:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2606,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2567,
                            "src": "8037:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2607,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeHolders",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2298,
                          "src": "8037:20:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2608,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "8060:15:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "8037:38:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "466565732068617665206e6f74206265656e2070616964206265666f72652e",
                        "id": 2610,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8077:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_72c9db2ef874f5605bd099729304478c638065f6f6e56c0e61c8793e96f26045",
                          "typeString": "literal_string \"Fees have not been paid before.\""
                        },
                        "value": "Fees have not been paid before."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_72c9db2ef874f5605bd099729304478c638065f6f6e56c0e61c8793e96f26045",
                          "typeString": "literal_string \"Fees have not been paid before.\""
                        }
                      ],
                      "id": 2605,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "8029:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2611,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8029:82:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2612,
                  "nodeType": "ExpressionStatement",
                  "src": "8029:82:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2614,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2567,
                              "src": "8129:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2615,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeHolders",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2298,
                            "src": "8129:20:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2616,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "8152:3:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2617,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "8152:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8129:32:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2619,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2573,
                          "src": "8165:15:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "8129:51:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820666565732068617665206265656e20706169642e",
                        "id": 2621,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8182:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0a1038ca079f03d8b263024fb5fcf5967b3c7ac039de6ae291227830e82bb5f1",
                          "typeString": "literal_string \"Not enough fees have been paid.\""
                        },
                        "value": "Not enough fees have been paid."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0a1038ca079f03d8b263024fb5fcf5967b3c7ac039de6ae291227830e82bb5f1",
                          "typeString": "literal_string \"Not enough fees have been paid.\""
                        }
                      ],
                      "id": 2613,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "8121:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2622,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8121:95:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2623,
                  "nodeType": "ExpressionStatement",
                  "src": "8121:95:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2624,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2567,
                        "src": "8227:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2626,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "8227:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2627,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "8251:3:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2628,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8251:9:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8227:33:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2630,
                  "nodeType": "ExpressionStatement",
                  "src": "8227:33:5"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2634,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2631,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2567,
                        "src": "8275:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2632,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "payerForHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2308,
                      "src": "8275:25:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 2633,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8302:3:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "8275:30:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2642,
                  "nodeType": "IfStatement",
                  "src": "8271:82:5",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2635,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2567,
                          "src": "8315:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2637,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": true,
                        "memberName": "payerForHolders",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2308,
                        "src": "8315:25:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2638,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "8343:3:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2639,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8343:10:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "8315:38:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2641,
                    "nodeType": "ExpressionStatement",
                    "src": "8315:38:5"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2643,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2567,
                        "src": "8368:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2644,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "8368:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2645,
                      "name": "arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2573,
                      "src": "8387:15:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8368:34:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2653,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2567,
                          "src": "8524:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2654,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastTotalFeePayment",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2304,
                        "src": "8524:29:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2655,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8555:1:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "8524:32:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2664,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2567,
                          "src": "8670:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2665,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastTotalFeePaymentIsTeam",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2306,
                        "src": "8670:35:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 2679,
                      "nodeType": "IfStatement",
                      "src": "8667:233:5",
                      "trueBody": {
                        "id": 2678,
                        "nodeType": "Block",
                        "src": "8707:193:5",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2670,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2666,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2567,
                                  "src": "8781:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2668,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "lastTotalFeePaymentIsTeam",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2306,
                                "src": "8781:35:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 2669,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8819:5:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              },
                              "src": "8781:43:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 2671,
                            "nodeType": "ExpressionStatement",
                            "src": "8781:43:5"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2676,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2672,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2567,
                                  "src": "8846:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2674,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "lastTotalFeePayment",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2304,
                                "src": "8846:29:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "id": 2675,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20641,
                                "src": "8878:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "8846:35:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 2677,
                            "nodeType": "ExpressionStatement",
                            "src": "8846:35:5"
                          }
                        ]
                      }
                    },
                    "id": 2680,
                    "nodeType": "IfStatement",
                    "src": "8520:380:5",
                    "trueBody": {
                      "id": 2663,
                      "nodeType": "Block",
                      "src": "8558:103:5",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 2661,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2657,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2567,
                                "src": "8607:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2659,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePayment",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2304,
                              "src": "8607:29:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 2660,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20641,
                              "src": "8639:3:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "8607:35:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 2662,
                          "nodeType": "ExpressionStatement",
                          "src": "8607:35:5"
                        }
                      ]
                    }
                  },
                  "id": 2681,
                  "nodeType": "IfStatement",
                  "src": "8364:536:5",
                  "trueBody": {
                    "id": 2652,
                    "nodeType": "Block",
                    "src": "8404:110:5",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2648,
                              "name": "_milestoneID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2563,
                              "src": "8470:12:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2649,
                              "name": "arbitrationCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2573,
                              "src": "8483:15:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 2647,
                            "name": "createDispute",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2843,
                            "src": "8456:13:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256)"
                            }
                          },
                          "id": 2650,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8456:43:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2651,
                        "nodeType": "ExpressionStatement",
                        "src": "8456:43:5"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Pay fee to dispute a milestone. To be called by parties claiming the milestone was not completed.\n The first party to pay the fee entirely will be reimbursed if the dispute is won.\n Note that holders can make a smart contract to crowdfund the fee.\n In the rare event the arbitrationCost is increased, anyone can pay the extra, but it is always the first payer who can be reimbursed.\n @param _milestoneID The milestone which is disputed.",
            "id": 2683,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "payDisputeFeeByHolders",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2564,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2563,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2683,
                  "src": "7620:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2562,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7620:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7619:19:5"
            },
            "payable": true,
            "returnParameters": {
              "id": 2565,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7654:0:5"
            },
            "scope": 3434,
            "src": "7588:1318:5",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2799,
              "nodeType": "Block",
              "src": "9165:1186:5",
              "statements": [
                {
                  "assignments": [
                    2689
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2689,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2800,
                      "src": "9175:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2688,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "9175:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2693,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2690,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "9205:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2692,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2691,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2685,
                      "src": "9216:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9205:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9175:54:5"
                },
                {
                  "assignments": [
                    2695
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2695,
                      "name": "arbitrationCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 2800,
                      "src": "9239:20:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2694,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "9239:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2700,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2698,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "9289:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2696,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "9262:10:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      "id": 2697,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "arbitrationCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3967,
                      "src": "9262:26:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (bytes memory) view external returns (uint256)"
                      }
                    },
                    "id": 2699,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9262:47:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9239:70:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2705,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2702,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "9327:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9327:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2704,
                          "name": "team",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2274,
                          "src": "9341:4:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "9327:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746865207465616d2e",
                        "id": 2706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9347:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        },
                        "value": "Can only be called by the team."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        }
                      ],
                      "id": 2701,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "9319:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9319:62:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2708,
                  "nodeType": "ExpressionStatement",
                  "src": "9319:62:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2712,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "9399:19:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2710,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2689,
                            "src": "9400:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2711,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "disputed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2294,
                          "src": "9400:18:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792064697370757465642e",
                        "id": 2713,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9420:43:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c89acdf3ae213bf1bfe0985ee6e8516fb4f5e2dc1beeccca6e6210536f20b5f",
                          "typeString": "literal_string \"The milestone cannot be already disputed.\""
                        },
                        "value": "The milestone cannot be already disputed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c89acdf3ae213bf1bfe0985ee6e8516fb4f5e2dc1beeccca6e6210536f20b5f",
                          "typeString": "literal_string \"The milestone cannot be already disputed.\""
                        }
                      ],
                      "id": 2709,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "9391:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2714,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9391:73:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2715,
                  "nodeType": "ExpressionStatement",
                  "src": "9391:73:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2731,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2720,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20710,
                              "src": "9512:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2717,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2689,
                                "src": "9482:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2718,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "9482:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 2719,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balanceOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18894,
                            "src": "9482:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 2721,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9482:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2730,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2727,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2722,
                                  "name": "disputeThreshold",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2280,
                                  "src": "9522:16:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2723,
                                        "name": "milestone",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2689,
                                        "src": "9539:9:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                          "typeString": "struct FundingVault.Milestone storage pointer"
                                        }
                                      },
                                      "id": 2724,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "voteToken",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2300,
                                      "src": "9539:19:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                        "typeString": "contract MiniMeToken"
                                      }
                                    },
                                    "id": 2725,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "totalSupply",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19019,
                                    "src": "9539:31:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 2726,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "9539:33:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "9522:50:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2728,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "9521:52:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 2729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9576:4:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "9521:59:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "9482:98:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820766f7465732e",
                        "id": 2732,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9582:19:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        },
                        "value": "Not enough votes."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        }
                      ],
                      "id": 2716,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "9474:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2733,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9474:128:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2734,
                  "nodeType": "ExpressionStatement",
                  "src": "9474:128:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2742,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2740,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2736,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2689,
                              "src": "9620:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2737,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2296,
                            "src": "9620:17:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2738,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "9640:3:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 2739,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "9640:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "9620:29:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2741,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2695,
                          "src": "9653:15:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "9620:48:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820666565732068617665206265656e20706169642e",
                        "id": 2743,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9670:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0a1038ca079f03d8b263024fb5fcf5967b3c7ac039de6ae291227830e82bb5f1",
                          "typeString": "literal_string \"Not enough fees have been paid.\""
                        },
                        "value": "Not enough fees have been paid."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0a1038ca079f03d8b263024fb5fcf5967b3c7ac039de6ae291227830e82bb5f1",
                          "typeString": "literal_string \"Not enough fees have been paid.\""
                        }
                      ],
                      "id": 2735,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "9612:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2744,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9612:92:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2745,
                  "nodeType": "ExpressionStatement",
                  "src": "9612:92:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2751,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2746,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2689,
                        "src": "9716:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2748,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "9716:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2749,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "9737:3:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2750,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9737:9:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9716:30:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2752,
                  "nodeType": "ExpressionStatement",
                  "src": "9716:30:5"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2756,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2753,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2689,
                        "src": "9760:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2754,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "9760:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2755,
                      "name": "arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2695,
                      "src": "9782:15:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9760:37:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2766,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2763,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2689,
                          "src": "9923:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2764,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastTotalFeePayment",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2304,
                        "src": "9923:29:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2765,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9954:1:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "9923:32:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "id": 2782,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "10122:36:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2780,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2689,
                            "src": "10123:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2781,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "lastTotalFeePaymentIsTeam",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2306,
                          "src": "10123:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": null,
                      "id": 2796,
                      "nodeType": "IfStatement",
                      "src": "10119:226:5",
                      "trueBody": {
                        "id": 2795,
                        "nodeType": "Block",
                        "src": "10160:185:5",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2787,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2783,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2689,
                                  "src": "10235:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2785,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "lastTotalFeePaymentIsTeam",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2306,
                                "src": "10235:35:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 2786,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10273:4:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "src": "10235:42:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 2788,
                            "nodeType": "ExpressionStatement",
                            "src": "10235:42:5"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "id": 2793,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2789,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2689,
                                  "src": "10295:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2791,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberName": "lastTotalFeePayment",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2304,
                                "src": "10295:29:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "argumentTypes": null,
                                "id": 2792,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20641,
                                "src": "10327:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10295:35:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 2794,
                            "nodeType": "ExpressionStatement",
                            "src": "10295:35:5"
                          }
                        ]
                      }
                    },
                    "id": 2797,
                    "nodeType": "IfStatement",
                    "src": "9919:426:5",
                    "trueBody": {
                      "id": 2779,
                      "nodeType": "Block",
                      "src": "9957:156:5",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 2771,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2767,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2689,
                                "src": "10007:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2769,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePayment",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2304,
                              "src": "10007:29:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 2770,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20641,
                              "src": "10039:3:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "10007:35:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 2772,
                          "nodeType": "ExpressionStatement",
                          "src": "10007:35:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 2777,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2773,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2689,
                                "src": "10056:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2775,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePaymentIsTeam",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2306,
                              "src": "10056:35:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 2776,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10094:4:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "src": "10056:42:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 2778,
                          "nodeType": "ExpressionStatement",
                          "src": "10056:42:5"
                        }
                      ]
                    }
                  },
                  "id": 2798,
                  "nodeType": "IfStatement",
                  "src": "9756:589:5",
                  "trueBody": {
                    "id": 2762,
                    "nodeType": "Block",
                    "src": "9799:106:5",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2758,
                              "name": "_milestoneID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2685,
                              "src": "9865:12:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2759,
                              "name": "arbitrationCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2695,
                              "src": "9878:15:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 2757,
                            "name": "createDispute",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2843,
                            "src": "9851:13:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256)"
                            }
                          },
                          "id": 2760,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9851:43:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2761,
                        "nodeType": "ExpressionStatement",
                        "src": "9851:43:5"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Pay fee to for a milestone dispute. To be called by the team when the holders have enough votes and fee paid.\n @param _milestoneID The milestone which is disputed.",
            "id": 2800,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "payDisputeFeeByTeam",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2686,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2685,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2800,
                  "src": "9131:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2684,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "9131:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9130:19:5"
            },
            "payable": true,
            "returnParameters": {
              "id": 2687,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9165:0:5"
            },
            "scope": 3434,
            "src": "9102:1249:5",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2842,
              "nodeType": "Block",
              "src": "10611:452:5",
              "statements": [
                {
                  "assignments": [
                    2808
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2808,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2843,
                      "src": "10621:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2807,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "10621:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2812,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2809,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "10651:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2811,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2810,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2802,
                      "src": "10662:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "10651:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10621:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2813,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2808,
                        "src": "10685:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2815,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "disputed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2294,
                      "src": "10685:18:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 2816,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10706:4:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "10685:25:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2818,
                  "nodeType": "ExpressionStatement",
                  "src": "10685:25:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2823,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2819,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2808,
                        "src": "10857:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2821,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "10857:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2822,
                      "name": "_arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2804,
                      "src": "10878:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10857:37:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2824,
                  "nodeType": "ExpressionStatement",
                  "src": "10857:37:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2825,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2808,
                        "src": "10904:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2827,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "disputeID",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2302,
                      "src": "10904:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2830,
                          "name": "AMOUNT_OF_CHOICES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2323,
                          "src": "10951:17:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2831,
                          "name": "arbitratorExtraData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 501,
                          "src": "10969:19:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2828,
                          "name": "arbitrator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 499,
                          "src": "10926:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Arbitrator_$4021",
                            "typeString": "contract Arbitrator"
                          }
                        },
                        "id": 2829,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "createDispute",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3960,
                        "src": "10926:24:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                          "typeString": "function (uint256,bytes memory) payable external returns (uint256)"
                        }
                      },
                      "id": 2832,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10926:63:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10904:85:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2834,
                  "nodeType": "ExpressionStatement",
                  "src": "10904:85:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2835,
                        "name": "disputeIDToMilstoneID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2316,
                        "src": "10999:21:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 2838,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2836,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2808,
                          "src": "11021:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2837,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "disputeID",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2302,
                        "src": "11021:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10999:42:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2839,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2802,
                      "src": "11044:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10999:57:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2841,
                  "nodeType": "ExpressionStatement",
                  "src": "10999:57:5"
                }
              ]
            },
            "documentation": "@dev Create a dispute.\n @param _milestoneID The milestone which is disputed.\n @param _arbitrationCost The amount which should be paid to the arbitrator.",
            "id": 2843,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "createDispute",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2805,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2802,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2843,
                  "src": "10560:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2801,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10560:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2804,
                  "name": "_arbitrationCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2843,
                  "src": "10579:21:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2803,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10579:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10559:42:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2806,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10611:0:5"
            },
            "scope": 3434,
            "src": "10537:526:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2963,
              "nodeType": "Block",
              "src": "11341:1039:5",
              "statements": [
                {
                  "assignments": [
                    2852
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2852,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 2964,
                      "src": "11351:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2851,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "11351:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2856,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2853,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "11381:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2855,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2854,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2845,
                      "src": "11392:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11381:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11351:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2861,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2858,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "11423:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2859,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11423:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2860,
                          "name": "team",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2274,
                          "src": "11437:4:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11423:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746865207465616d2e",
                        "id": 2862,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11443:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        },
                        "value": "Can only be called by the team."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        }
                      ],
                      "id": 2857,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "11415:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2863,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11415:62:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2864,
                  "nodeType": "ExpressionStatement",
                  "src": "11415:62:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2868,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "11495:19:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2866,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2852,
                            "src": "11496:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2867,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "disputed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2294,
                          "src": "11496:18:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4d696c6573746f6e652063616e6e6f742062652064697370757465642e",
                        "id": 2869,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11516:31:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2863105796c1d5b757cbfe5d474e62085dd8adeeaad5674c11c7c8c9a63f671d",
                          "typeString": "literal_string \"Milestone cannot be disputed.\""
                        },
                        "value": "Milestone cannot be disputed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_2863105796c1d5b757cbfe5d474e62085dd8adeeaad5674c11c7c8c9a63f671d",
                          "typeString": "literal_string \"Milestone cannot be disputed.\""
                        }
                      ],
                      "id": 2865,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "11487:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11487:61:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2871,
                  "nodeType": "ExpressionStatement",
                  "src": "11487:61:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2887,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2876,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20710,
                              "src": "11609:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2873,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2852,
                                "src": "11579:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 2874,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "11579:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 2875,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balanceOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18894,
                            "src": "11579:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 2877,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11579:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2883,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2878,
                                  "name": "disputeThreshold",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2280,
                                  "src": "11618:16:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2879,
                                        "name": "milestone",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2852,
                                        "src": "11635:9:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                          "typeString": "struct FundingVault.Milestone storage pointer"
                                        }
                                      },
                                      "id": 2880,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "voteToken",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2300,
                                      "src": "11635:19:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                        "typeString": "contract MiniMeToken"
                                      }
                                    },
                                    "id": 2881,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "totalSupply",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19019,
                                    "src": "11635:31:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 2882,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "11635:33:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "11618:50:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2884,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "11617:52:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 2885,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11672:4:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "11617:59:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11579:97:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820766f7465732e",
                        "id": 2888,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11690:19:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        },
                        "value": "Not enough votes."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        }
                      ],
                      "id": 2872,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "11558:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2889,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11558:161:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2890,
                  "nodeType": "ExpressionStatement",
                  "src": "11558:161:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2915,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2895,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2892,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 20641,
                                "src": "11833:3:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2893,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2852,
                                  "src": "11839:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 2894,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "claimTime",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2292,
                                "src": "11839:19:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11833:25:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 2896,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11832:27:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2897,
                            "name": "claimToWithdrawTime",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2282,
                            "src": "11862:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2913,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 2904,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 2898,
                                    "name": "additionalTimeToWithdraw",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2284,
                                    "src": "11885:24:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 2902,
                                        "name": "this",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 20710,
                                        "src": "11942:4:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_FundingVault_$3434",
                                          "typeString": "contract FundingVault"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_FundingVault_$3434",
                                          "typeString": "contract FundingVault"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 2899,
                                          "name": "milestone",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2852,
                                          "src": "11912:9:5",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                            "typeString": "struct FundingVault.Milestone storage pointer"
                                          }
                                        },
                                        "id": 2900,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "voteToken",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2300,
                                        "src": "11912:19:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                          "typeString": "contract MiniMeToken"
                                        }
                                      },
                                      "id": 2901,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "balanceOf",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 18894,
                                      "src": "11912:29:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                        "typeString": "function (address) view external returns (uint256)"
                                      }
                                    },
                                    "id": 2903,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11912:35:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "11885:62:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 2905,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "11884:64:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "/",
                            "rightExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 2911,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31303030",
                                    "id": 2906,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "11952:4:5",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1000_by_1",
                                      "typeString": "int_const 1000"
                                    },
                                    "value": "1000"
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 2907,
                                          "name": "milestone",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2852,
                                          "src": "11959:9:5",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                            "typeString": "struct FundingVault.Milestone storage pointer"
                                          }
                                        },
                                        "id": 2908,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "voteToken",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 2300,
                                        "src": "11959:19:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                          "typeString": "contract MiniMeToken"
                                        }
                                      },
                                      "id": 2909,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "totalSupply",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 19019,
                                      "src": "11959:31:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                        "typeString": "function () view external returns (uint256)"
                                      }
                                    },
                                    "id": 2910,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "11959:33:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "11952:40:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 2912,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "11951:42:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "11884:109:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "11862:131:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11832:161:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "54696d65206c696d697420686173206e6f7420706173736564207965742e",
                        "id": 2916,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12007:32:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_89b632efa1d6dee8fd04105830ebaa65b175eb469d07a87c29985f245a4f63af",
                          "typeString": "literal_string \"Time limit has not passed yet.\""
                        },
                        "value": "Time limit has not passed yet."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_89b632efa1d6dee8fd04105830ebaa65b175eb469d07a87c29985f245a4f63af",
                          "typeString": "literal_string \"Time limit has not passed yet.\""
                        }
                      ],
                      "id": 2891,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "11759:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2917,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11759:290:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2918,
                  "nodeType": "ExpressionStatement",
                  "src": "11759:290:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2929,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2926,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2922,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2852,
                              "src": "12074:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2923,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "amountClaimed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2290,
                            "src": "12074:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2924,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2852,
                              "src": "12098:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2925,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2296,
                            "src": "12098:17:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12074:41:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2927,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2852,
                            "src": "12116:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 2928,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeHolders",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2298,
                          "src": "12116:20:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12074:62:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2919,
                        "name": "team",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2274,
                        "src": "12060:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 2921,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12060:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 2930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12060:77:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2931,
                  "nodeType": "ExpressionStatement",
                  "src": "12060:77:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2932,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12194:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2934,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2288,
                      "src": "12194:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2935,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12214:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2936,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "12214:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12194:43:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2938,
                  "nodeType": "ExpressionStatement",
                  "src": "12194:43:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2943,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2939,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12247:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2941,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "12247:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2942,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12273:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12247:27:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2944,
                  "nodeType": "ExpressionStatement",
                  "src": "12247:27:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2949,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2945,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12284:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2947,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2292,
                      "src": "12284:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2948,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12306:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12284:23:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2950,
                  "nodeType": "ExpressionStatement",
                  "src": "12284:23:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2955,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2951,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12317:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2953,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "12317:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2954,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12337:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12317:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2956,
                  "nodeType": "ExpressionStatement",
                  "src": "12317:21:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2961,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2957,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2852,
                        "src": "12348:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 2959,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "12348:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2960,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12371:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12348:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2962,
                  "nodeType": "ExpressionStatement",
                  "src": "12348:24:5"
                }
              ]
            },
            "documentation": "@dev Withdraw the money claimed in a milestone.\n To be called when a dispute has not been created within the time limit.\n @param _milestoneID The milestone which is disputed.",
            "id": 2964,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2848,
                    "name": "_milestoneID",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2845,
                    "src": "11327:12:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2849,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2847,
                  "name": "isNotOuster",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2461,
                  "src": "11315:11:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11315:25:5"
              }
            ],
            "name": "withdraw",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2846,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2845,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 2964,
                  "src": "11289:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2844,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "11289:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11288:19:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2850,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11341:0:5"
            },
            "scope": 3434,
            "src": "11271:1109:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3069,
              "nodeType": "Block",
              "src": "12588:840:5",
              "statements": [
                {
                  "assignments": [
                    2970
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2970,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 3070,
                      "src": "12598:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2969,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "12598:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2974,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2971,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "12628:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 2973,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2972,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2966,
                      "src": "12639:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12628:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12598:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2979,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2976,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "12670:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2977,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12670:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2978,
                          "name": "team",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2274,
                          "src": "12684:4:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "12670:18:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746865207465616d2e",
                        "id": 2980,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12690:33:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        },
                        "value": "Can only be called by the team."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dbcb7f9acd87ca94d978498da1ad51c79cfb9b32b03b7b3c49fe0f3dbed569dd",
                          "typeString": "literal_string \"Can only be called by the team.\""
                        }
                      ],
                      "id": 2975,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "12662:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2981,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12662:62:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2982,
                  "nodeType": "ExpressionStatement",
                  "src": "12662:62:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2984,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2970,
                          "src": "12742:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 2985,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastTotalFeePaymentIsTeam",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2306,
                        "src": "12742:35:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5465616d207761736e277420746865206c61737420746f207061792e",
                        "id": 2986,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12779:30:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_12bd09fc42f7ca27791d8f982a2be61842889589cd33321b3b5edc20d47a3377",
                          "typeString": "literal_string \"Team wasn't the last to pay.\""
                        },
                        "value": "Team wasn't the last to pay."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_12bd09fc42f7ca27791d8f982a2be61842889589cd33321b3b5edc20d47a3377",
                          "typeString": "literal_string \"Team wasn't the last to pay.\""
                        }
                      ],
                      "id": 2983,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "12734:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12734:76:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2988,
                  "nodeType": "ExpressionStatement",
                  "src": "12734:76:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2993,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2990,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "12828:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2991,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2970,
                              "src": "12834:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 2992,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "lastTotalFeePayment",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2304,
                            "src": "12834:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12828:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2994,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2286,
                          "src": "12866:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12828:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "54696d656f757420686173206e6f74207061737365642e",
                        "id": 2996,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12875:25:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0eaaa2cf230d8a9d32c24732baa068faa7683a865211e2f133ae27b14140edf",
                          "typeString": "literal_string \"Timeout has not passed.\""
                        },
                        "value": "Timeout has not passed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0eaaa2cf230d8a9d32c24732baa068faa7683a865211e2f133ae27b14140edf",
                          "typeString": "literal_string \"Timeout has not passed.\""
                        }
                      ],
                      "id": 2989,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "12820:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12820:81:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2998,
                  "nodeType": "ExpressionStatement",
                  "src": "12820:81:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3006,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3002,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2970,
                              "src": "12926:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3003,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "amountClaimed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2290,
                            "src": "12926:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3004,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2970,
                              "src": "12950:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3005,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "feeTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2296,
                            "src": "12950:17:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12926:41:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3007,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2970,
                            "src": "12968:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 3008,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeHolders",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2298,
                          "src": "12968:20:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12926:62:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2999,
                        "name": "team",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2274,
                        "src": "12912:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12912:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3010,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12912:77:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3011,
                  "nodeType": "ExpressionStatement",
                  "src": "12912:77:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3012,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13058:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3014,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2288,
                      "src": "13058:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3015,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13078:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3016,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "13078:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13058:43:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3018,
                  "nodeType": "ExpressionStatement",
                  "src": "13058:43:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3023,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3019,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13111:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3021,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "13111:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3022,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13137:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13111:27:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3024,
                  "nodeType": "ExpressionStatement",
                  "src": "13111:27:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3025,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13148:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3027,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2292,
                      "src": "13148:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3028,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13170:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13148:23:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3030,
                  "nodeType": "ExpressionStatement",
                  "src": "13148:23:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3031,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13181:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3033,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "13181:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3034,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13201:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13181:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3036,
                  "nodeType": "ExpressionStatement",
                  "src": "13181:21:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3037,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13212:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3039,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "13212:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3040,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13235:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13212:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3042,
                  "nodeType": "ExpressionStatement",
                  "src": "13212:24:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3043,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13246:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3045,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "voteToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2300,
                      "src": "13246:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 3047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13280:3:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 3046,
                        "name": "MiniMeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19619,
                        "src": "13268:11:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                          "typeString": "type(contract MiniMeToken)"
                        }
                      },
                      "id": 3048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13268:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "src": "13246:38:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "id": 3050,
                  "nodeType": "ExpressionStatement",
                  "src": "13246:38:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3051,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13294:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3053,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastTotalFeePayment",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2304,
                      "src": "13294:29:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13326:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13294:33:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3056,
                  "nodeType": "ExpressionStatement",
                  "src": "13294:33:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3061,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3057,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13337:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3059,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastTotalFeePaymentIsTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2306,
                      "src": "13337:35:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3060,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13375:5:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "13337:43:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3062,
                  "nodeType": "ExpressionStatement",
                  "src": "13337:43:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3063,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2970,
                        "src": "13390:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3065,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "payerForHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2308,
                      "src": "13390:25:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 3066,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13418:3:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "13390:31:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3068,
                  "nodeType": "ExpressionStatement",
                  "src": "13390:31:5"
                }
              ]
            },
            "documentation": "@dev Timeout to use when the holders don't pay the fee.\n @param _milestoneID The milestone which is disputed.",
            "id": 3070,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "timeoutByTeam",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2967,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2966,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 3070,
                  "src": "12562:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2965,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12562:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12561:19:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 2968,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12588:0:5"
            },
            "scope": 3434,
            "src": "12539:889:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3164,
              "nodeType": "Block",
              "src": "13613:794:5",
              "statements": [
                {
                  "assignments": [
                    3076
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3076,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 3165,
                      "src": "13623:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3075,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "13623:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3080,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3077,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "13653:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 3079,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3078,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3072,
                      "src": "13664:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13653:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13623:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3084,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "13695:36:5",
                        "subExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3082,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3076,
                            "src": "13696:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 3083,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "lastTotalFeePaymentIsTeam",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2306,
                          "src": "13696:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5465616d207761736e277420746865206c61737420746f207061792e",
                        "id": 3085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13733:30:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_12bd09fc42f7ca27791d8f982a2be61842889589cd33321b3b5edc20d47a3377",
                          "typeString": "literal_string \"Team wasn't the last to pay.\""
                        },
                        "value": "Team wasn't the last to pay."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_12bd09fc42f7ca27791d8f982a2be61842889589cd33321b3b5edc20d47a3377",
                          "typeString": "literal_string \"Team wasn't the last to pay.\""
                        }
                      ],
                      "id": 3081,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "13687:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13687:77:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3087,
                  "nodeType": "ExpressionStatement",
                  "src": "13687:77:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3094,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3089,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "13782:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3090,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3076,
                              "src": "13788:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3091,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "lastTotalFeePayment",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2304,
                            "src": "13788:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13782:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3093,
                          "name": "timeout",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2286,
                          "src": "13820:7:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "13782:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "54696d656f757420686173206e6f74207061737365642e",
                        "id": 3095,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13829:25:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e0eaaa2cf230d8a9d32c24732baa068faa7683a865211e2f133ae27b14140edf",
                          "typeString": "literal_string \"Timeout has not passed.\""
                        },
                        "value": "Timeout has not passed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e0eaaa2cf230d8a9d32c24732baa068faa7683a865211e2f133ae27b14140edf",
                          "typeString": "literal_string \"Timeout has not passed.\""
                        }
                      ],
                      "id": 3088,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "13774:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3096,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13774:81:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3097,
                  "nodeType": "ExpressionStatement",
                  "src": "13774:81:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3107,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3103,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3076,
                            "src": "13901:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 3104,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeTeam",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2296,
                          "src": "13901:17:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3105,
                            "name": "milestone",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3076,
                            "src": "13919:9:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                              "typeString": "struct FundingVault.Milestone storage pointer"
                            }
                          },
                          "id": 3106,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "feeHolders",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2298,
                          "src": "13919:20:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "13901:38:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3098,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3076,
                          "src": "13866:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 3101,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "payerForHolders",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2308,
                        "src": "13866:25:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3102,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13866:34:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3108,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13866:74:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3109,
                  "nodeType": "ExpressionStatement",
                  "src": "13866:74:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3110,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "13999:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3112,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "amountClaimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2290,
                      "src": "13999:23:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3113,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14025:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13999:27:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3115,
                  "nodeType": "ExpressionStatement",
                  "src": "13999:27:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3120,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3116,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14036:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3118,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2292,
                      "src": "14036:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3119,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14058:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14036:23:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3121,
                  "nodeType": "ExpressionStatement",
                  "src": "14036:23:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3122,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14069:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3124,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "disputed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2294,
                      "src": "14069:18:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3125,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14090:5:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "14069:26:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3127,
                  "nodeType": "ExpressionStatement",
                  "src": "14069:26:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3128,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14105:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3130,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeTeam",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2296,
                      "src": "14105:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3131,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14125:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14105:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3133,
                  "nodeType": "ExpressionStatement",
                  "src": "14105:21:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3134,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14136:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3136,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "feeHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2298,
                      "src": "14136:20:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3137,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14159:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14136:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3139,
                  "nodeType": "ExpressionStatement",
                  "src": "14136:24:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3140,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14170:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3142,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "voteToken",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2300,
                      "src": "14170:19:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 3144,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14204:3:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 3143,
                        "name": "MiniMeToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 19619,
                        "src": "14192:11:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                          "typeString": "type(contract MiniMeToken)"
                        }
                      },
                      "id": 3145,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14192:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                        "typeString": "contract MiniMeToken"
                      }
                    },
                    "src": "14170:38:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                      "typeString": "contract MiniMeToken"
                    }
                  },
                  "id": 3147,
                  "nodeType": "ExpressionStatement",
                  "src": "14170:38:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3152,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3148,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14218:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3150,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastTotalFeePayment",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2304,
                      "src": "14218:29:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14250:1:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14218:33:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3153,
                  "nodeType": "ExpressionStatement",
                  "src": "14218:33:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3154,
                        "name": "milestone",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3076,
                        "src": "14261:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone storage pointer"
                        }
                      },
                      "id": 3156,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "payerForHolders",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2308,
                      "src": "14261:25:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 3157,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14289:3:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "14261:31:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3159,
                  "nodeType": "ExpressionStatement",
                  "src": "14261:31:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3160,
                      "name": "canChangeTeam",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2320,
                      "src": "14303:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 3161,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14319:4:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "14303:20:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3163,
                  "nodeType": "ExpressionStatement",
                  "src": "14303:20:5"
                }
              ]
            },
            "documentation": "@dev Timeout to use whe the team don't pay the fee.\n @param _milestoneID The milestone which is disputed.",
            "id": 3165,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "timeoutByHolders",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3072,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 3165,
                  "src": "13587:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3071,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "13587:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13586:19:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 3074,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13613:0:5"
            },
            "scope": 3434,
            "src": "13561:846:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3189,
              "nodeType": "Block",
              "src": "14617:157:5",
              "statements": [
                {
                  "assignments": [
                    3171
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3171,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 3190,
                      "src": "14627:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3170,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "14627:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3175,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3172,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "14657:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 3174,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3173,
                      "name": "_milestoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3167,
                      "src": "14668:12:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "14657:24:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14627:54:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3184,
                          "name": "milestone",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3171,
                          "src": "14726:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                            "typeString": "struct FundingVault.Milestone storage pointer"
                          }
                        },
                        "id": 3185,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "disputeID",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2302,
                        "src": "14726:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3186,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "14747:19:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3181,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "14715:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3182,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "14715:9:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3176,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 499,
                            "src": "14691:10:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Arbitrator_$4021",
                              "typeString": "contract Arbitrator"
                            }
                          },
                          "id": 3179,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "appeal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3987,
                          "src": "14691:17:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                            "typeString": "function (uint256,bytes memory) payable external"
                          }
                        },
                        "id": 3180,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "14691:23:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value_$",
                          "typeString": "function (uint256) returns (function (uint256,bytes memory) payable external)"
                        }
                      },
                      "id": 3183,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14691:34:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value",
                        "typeString": "function (uint256,bytes memory) payable external"
                      }
                    },
                    "id": 3187,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14691:76:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3188,
                  "nodeType": "ExpressionStatement",
                  "src": "14691:76:5"
                }
              ]
            },
            "documentation": "@dev Appeal an appealable ruling.\n Transfer the funds to the arbitrator.\n @param _milestoneID The milestone which is disputed.",
            "id": 3190,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "appeal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3167,
                  "name": "_milestoneID",
                  "nodeType": "VariableDeclaration",
                  "scope": 3190,
                  "src": "14583:17:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3166,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14583:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14582:19:5"
            },
            "payable": true,
            "returnParameters": {
              "id": 3169,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14617:0:5"
            },
            "scope": 3434,
            "src": "14567:207:5",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3405,
              "nodeType": "Block",
              "src": "15085:1903:5",
              "statements": [
                {
                  "assignments": [
                    3198
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3198,
                      "name": "milestone",
                      "nodeType": "VariableDeclaration",
                      "scope": 3406,
                      "src": "15095:27:5",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                        "typeString": "struct FundingVault.Milestone"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3197,
                        "name": "Milestone",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2309,
                        "src": "15095:9:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                          "typeString": "struct FundingVault.Milestone"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3204,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3199,
                      "name": "milestones",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2312,
                      "src": "15125:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Milestone_$2309_storage_$dyn_storage",
                        "typeString": "struct FundingVault.Milestone storage ref[] storage ref"
                      }
                    },
                    "id": 3203,
                    "indexExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3200,
                        "name": "disputeIDToMilstoneID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2316,
                        "src": "15136:21:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 3202,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3201,
                        "name": "_disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3192,
                        "src": "15158:10:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "15136:33:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15125:45:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Milestone_$2309_storage",
                      "typeString": "struct FundingVault.Milestone storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15095:75:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3220,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3209,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20710,
                              "src": "15304:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_FundingVault_$3434",
                                "typeString": "contract FundingVault"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3206,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "15274:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3207,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "15274:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "id": 3208,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balanceOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18894,
                            "src": "15274:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                              "typeString": "function (address) view external returns (uint256)"
                            }
                          },
                          "id": 3210,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15274:35:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3219,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3216,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 3211,
                                  "name": "disputeThreshold",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2280,
                                  "src": "15314:16:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 3212,
                                        "name": "milestone",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3198,
                                        "src": "15331:9:5",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                          "typeString": "struct FundingVault.Milestone storage pointer"
                                        }
                                      },
                                      "id": 3213,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "voteToken",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 2300,
                                      "src": "15331:19:5",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                        "typeString": "contract MiniMeToken"
                                      }
                                    },
                                    "id": 3214,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "totalSupply",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 19019,
                                    "src": "15331:31:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 3215,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15331:33:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "15314:50:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 3217,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "15313:52:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 3218,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15368:4:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "15313:59:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "15274:98:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f75676820766f7465732e",
                        "id": 3221,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15374:19:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        },
                        "value": "Not enough votes."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0b7567247cbbcbc1434d338b37f935e1f4da64f39aba134317929bb6d088684d",
                          "typeString": "literal_string \"Not enough votes.\""
                        }
                      ],
                      "id": 3205,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "15266:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3222,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15266:128:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3223,
                  "nodeType": "ExpressionStatement",
                  "src": "15266:128:5"
                },
                {
                  "assignments": [
                    3225
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3225,
                      "name": "_milestoneID",
                      "nodeType": "VariableDeclaration",
                      "scope": 3406,
                      "src": "15405:17:5",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3224,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "15405:4:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3229,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3226,
                      "name": "disputeIDToMilstoneID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2316,
                      "src": "15425:21:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 3228,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3227,
                      "name": "_disputeID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3192,
                      "src": "15447:10:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15425:33:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15405:53:5"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3232,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3230,
                      "name": "_ruling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3194,
                      "src": "15472:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3231,
                      "name": "TEAM_WINS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2326,
                      "src": "15481:9:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "15472:18:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3318,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 3316,
                        "name": "_ruling",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3194,
                        "src": "16153:7:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 3317,
                        "name": "HOLDERS_WINS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2329,
                        "src": "16162:12:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "src": "16153:21:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 3403,
                    "nodeType": "IfStatement",
                    "src": "16149:833:5",
                    "trueBody": {
                      "id": 3402,
                      "nodeType": "Block",
                      "src": "16176:806:5",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3328,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3324,
                                    "name": "milestone",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3198,
                                    "src": "16229:9:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                      "typeString": "struct FundingVault.Milestone storage pointer"
                                    }
                                  },
                                  "id": 3325,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "feeTeam",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2296,
                                  "src": "16229:17:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3326,
                                    "name": "milestone",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3198,
                                    "src": "16247:9:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                      "typeString": "struct FundingVault.Milestone storage pointer"
                                    }
                                  },
                                  "id": 3327,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "feeHolders",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2298,
                                  "src": "16247:20:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "16229:38:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3319,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3198,
                                  "src": "16194:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 3322,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "payerForHolders",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2308,
                                "src": "16194:25:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 3323,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "transfer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "16194:34:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                "typeString": "function (uint256)"
                              }
                            },
                            "id": 3329,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16194:74:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3330,
                          "nodeType": "ExpressionStatement",
                          "src": "16194:74:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3335,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3331,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16335:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3333,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "amountClaimed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2290,
                              "src": "16335:23:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3334,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16361:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16335:27:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3336,
                          "nodeType": "ExpressionStatement",
                          "src": "16335:27:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3341,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3337,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16380:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3339,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "claimTime",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2292,
                              "src": "16380:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3340,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16402:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16380:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3342,
                          "nodeType": "ExpressionStatement",
                          "src": "16380:23:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3347,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3343,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16421:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3345,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "disputed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2294,
                              "src": "16421:18:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3346,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16442:5:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "16421:26:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 3348,
                          "nodeType": "ExpressionStatement",
                          "src": "16421:26:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3353,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3349,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16465:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3351,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "feeTeam",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2296,
                              "src": "16465:17:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3352,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16485:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16465:21:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3354,
                          "nodeType": "ExpressionStatement",
                          "src": "16465:21:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3359,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3355,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16504:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3357,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "feeHolders",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2298,
                              "src": "16504:20:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3358,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16527:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16504:24:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3360,
                          "nodeType": "ExpressionStatement",
                          "src": "16504:24:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3367,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3361,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16546:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3363,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "voteToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2300,
                              "src": "16546:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 3365,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16580:3:5",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 3364,
                                "name": "MiniMeToken",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 19619,
                                "src": "16568:11:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                                  "typeString": "type(contract MiniMeToken)"
                                }
                              },
                              "id": 3366,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "16568:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                                "typeString": "contract MiniMeToken"
                              }
                            },
                            "src": "16546:38:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                              "typeString": "contract MiniMeToken"
                            }
                          },
                          "id": 3368,
                          "nodeType": "ExpressionStatement",
                          "src": "16546:38:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3373,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3369,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16602:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3371,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "disputeID",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2302,
                              "src": "16602:19:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3372,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16624:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16602:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3374,
                          "nodeType": "ExpressionStatement",
                          "src": "16602:23:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3379,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3375,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16643:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3377,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePayment",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2304,
                              "src": "16643:29:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3378,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16675:1:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "16643:33:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3380,
                          "nodeType": "ExpressionStatement",
                          "src": "16643:33:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3385,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3381,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16694:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3383,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "lastTotalFeePaymentIsTeam",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2306,
                              "src": "16694:35:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3384,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16732:5:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "16694:43:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 3386,
                          "nodeType": "ExpressionStatement",
                          "src": "16694:43:5"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3391,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3387,
                                "name": "milestone",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3198,
                                "src": "16755:9:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                  "typeString": "struct FundingVault.Milestone storage pointer"
                                }
                              },
                              "id": 3389,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "payerForHolders",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2308,
                              "src": "16755:25:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 3390,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16783:3:5",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            },
                            "src": "16755:31:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 3392,
                          "nodeType": "ExpressionStatement",
                          "src": "16755:31:5"
                        },
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3395,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3393,
                              "name": "ousterID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2318,
                              "src": "16808:8:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 3394,
                              "name": "_milestoneID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3225,
                              "src": "16820:12:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "16808:24:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 3401,
                          "nodeType": "IfStatement",
                          "src": "16804:164:5",
                          "trueBody": {
                            "id": 3400,
                            "nodeType": "Block",
                            "src": "16835:133:5",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3398,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 3396,
                                    "name": "canChangeTeam",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2320,
                                    "src": "16891:13:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "74727565",
                                    "id": 3397,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16907:4:5",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "true"
                                  },
                                  "src": "16891:20:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 3399,
                                "nodeType": "ExpressionStatement",
                                "src": "16891:20:5"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 3404,
                  "nodeType": "IfStatement",
                  "src": "15468:1514:5",
                  "trueBody": {
                    "id": 3315,
                    "nodeType": "Block",
                    "src": "15492:651:5",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3243,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3240,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3236,
                                    "name": "milestone",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3198,
                                    "src": "15520:9:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                      "typeString": "struct FundingVault.Milestone storage pointer"
                                    }
                                  },
                                  "id": 3237,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "amountClaimed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2290,
                                  "src": "15520:23:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3238,
                                    "name": "milestone",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3198,
                                    "src": "15544:9:5",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                      "typeString": "struct FundingVault.Milestone storage pointer"
                                    }
                                  },
                                  "id": 3239,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "feeTeam",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2296,
                                  "src": "15544:17:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "15520:41:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3241,
                                  "name": "milestone",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3198,
                                  "src": "15562:9:5",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                    "typeString": "struct FundingVault.Milestone storage pointer"
                                  }
                                },
                                "id": 3242,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "feeHolders",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2298,
                                "src": "15562:20:5",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "15520:62:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3233,
                              "name": "team",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2274,
                              "src": "15506:4:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 3235,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "15506:13:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3244,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15506:77:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3245,
                        "nodeType": "ExpressionStatement",
                        "src": "15506:77:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3246,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15656:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3248,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "amount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2288,
                            "src": "15656:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "-=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3249,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15676:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3250,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "amountClaimed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2290,
                            "src": "15676:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "15656:43:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3252,
                        "nodeType": "ExpressionStatement",
                        "src": "15656:43:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3257,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3253,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15713:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3255,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "amountClaimed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2290,
                            "src": "15713:23:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3256,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15739:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15713:27:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3258,
                        "nodeType": "ExpressionStatement",
                        "src": "15713:27:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3263,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3259,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15754:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3261,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "claimTime",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2292,
                            "src": "15754:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3262,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15776:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15754:23:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3264,
                        "nodeType": "ExpressionStatement",
                        "src": "15754:23:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3269,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3265,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15791:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3267,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "disputed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2294,
                            "src": "15791:18:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 3268,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15812:5:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "15791:26:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 3270,
                        "nodeType": "ExpressionStatement",
                        "src": "15791:26:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3275,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3271,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15831:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3273,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "feeTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2296,
                            "src": "15831:17:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3274,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15851:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15831:21:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3276,
                        "nodeType": "ExpressionStatement",
                        "src": "15831:21:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3281,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3277,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15866:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3279,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "feeHolders",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2298,
                            "src": "15866:20:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3280,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15889:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15866:24:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3282,
                        "nodeType": "ExpressionStatement",
                        "src": "15866:24:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3289,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3283,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15904:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3285,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "voteToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2300,
                            "src": "15904:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                              "typeString": "contract MiniMeToken"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 3287,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15938:3:5",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 3286,
                              "name": "MiniMeToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19619,
                              "src": "15926:11:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_MiniMeToken_$19619_$",
                                "typeString": "type(contract MiniMeToken)"
                              }
                            },
                            "id": 3288,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15926:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                              "typeString": "contract MiniMeToken"
                            }
                          },
                          "src": "15904:38:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_MiniMeToken_$19619",
                            "typeString": "contract MiniMeToken"
                          }
                        },
                        "id": 3290,
                        "nodeType": "ExpressionStatement",
                        "src": "15904:38:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3295,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3291,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15956:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3293,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "disputeID",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2302,
                            "src": "15956:19:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3294,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15978:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15956:23:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3296,
                        "nodeType": "ExpressionStatement",
                        "src": "15956:23:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3301,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3297,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "15993:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3299,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "lastTotalFeePayment",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2304,
                            "src": "15993:29:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3300,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16025:1:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15993:33:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3302,
                        "nodeType": "ExpressionStatement",
                        "src": "15993:33:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3303,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "16040:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3305,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "lastTotalFeePaymentIsTeam",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2306,
                            "src": "16040:35:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 3306,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16078:5:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "16040:43:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 3308,
                        "nodeType": "ExpressionStatement",
                        "src": "16040:43:5"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3313,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3309,
                              "name": "milestone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3198,
                              "src": "16097:9:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Milestone_$2309_storage_ptr",
                                "typeString": "struct FundingVault.Milestone storage pointer"
                              }
                            },
                            "id": 3311,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "payerForHolders",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2308,
                            "src": "16097:25:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 3312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16125:3:5",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          },
                          "src": "16097:31:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 3314,
                        "nodeType": "ExpressionStatement",
                        "src": "16097:31:5"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Execute a ruling of a dispute.\n @param _disputeID ID of the dispute in the Arbitrator contract.\n @param _ruling Ruling given by the arbitrator. Note that 0 is reserved for \"Not able/wanting to make a decision\".",
            "id": 3406,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "executeRuling",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3192,
                  "name": "_disputeID",
                  "nodeType": "VariableDeclaration",
                  "scope": 3406,
                  "src": "15046:15:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3191,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "15046:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3194,
                  "name": "_ruling",
                  "nodeType": "VariableDeclaration",
                  "scope": 3406,
                  "src": "15063:12:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3193,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "15063:4:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15045:31:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 3196,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15085:0:5"
            },
            "scope": 3434,
            "src": "15023:1965:5",
            "stateMutability": "nonpayable",
            "superFunction": 594,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3432,
              "nodeType": "Block",
              "src": "17242:234:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3412,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "17260:3:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "17260:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3414,
                          "name": "funder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2278,
                          "src": "17274:6:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "17260:20:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652063616c6c6572206d757374206265207468652066756e6465722e",
                        "id": 3416,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17282:32:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0c9d3b399a3d68d0148c673da4c550101d07b772f20f362fde785fdba4f21aa6",
                          "typeString": "literal_string \"The caller must be the funder.\""
                        },
                        "value": "The caller must be the funder."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0c9d3b399a3d68d0148c673da4c550101d07b772f20f362fde785fdba4f21aa6",
                          "typeString": "literal_string \"The caller must be the funder.\""
                        }
                      ],
                      "id": 3411,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "17252:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3417,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17252:63:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3418,
                  "nodeType": "ExpressionStatement",
                  "src": "17252:63:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3420,
                        "name": "canChangeTeam",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2320,
                        "src": "17333:13:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4368616e67696e67207465616d73206973206e6f7420616c6c6f7765642e",
                        "id": 3421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17348:32:5",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a3316f77582e0f5551f41b93daad17390905007213786d8b9b255be098a57e54",
                          "typeString": "literal_string \"Changing teams is not allowed.\""
                        },
                        "value": "Changing teams is not allowed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a3316f77582e0f5551f41b93daad17390905007213786d8b9b255be098a57e54",
                          "typeString": "literal_string \"Changing teams is not allowed.\""
                        }
                      ],
                      "id": 3419,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "17325:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17325:56:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3423,
                  "nodeType": "ExpressionStatement",
                  "src": "17325:56:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3426,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3424,
                      "name": "team",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2274,
                      "src": "17391:4:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3425,
                      "name": "_newTeam",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3408,
                      "src": "17398:8:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17391:15:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3427,
                  "nodeType": "ExpressionStatement",
                  "src": "17391:15:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3430,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3428,
                      "name": "canChangeTeam",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2320,
                      "src": "17416:13:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 3429,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17432:5:5",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "17416:21:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3431,
                  "nodeType": "ExpressionStatement",
                  "src": "17416:21:5"
                }
              ]
            },
            "documentation": "@dev Change the team. Note that the holders would have to make\n  the funder a votable contract if they want a vote on who the new team will be.\n  @param _newTeam the new team.",
            "id": 3433,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "changeTeam",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3408,
                  "name": "_newTeam",
                  "nodeType": "VariableDeclaration",
                  "scope": 3433,
                  "src": "17217:16:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3407,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17217:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17216:18:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 3410,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17242:0:5"
            },
            "scope": 3434,
            "src": "17197:279:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3435,
        "src": "1116:16363:5"
      }
    ],
    "src": "155:17325:5"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-02T14:04:10.959Z"
}