{
  "contractName": "VestingScheme",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "parameters",
      "outputs": [
        {
          "name": "voteParams",
          "type": "bytes32"
        },
        {
          "name": "intVote",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "organizationsData",
      "outputs": [
        {
          "name": "token",
          "type": "address"
        },
        {
          "name": "beneficiary",
          "type": "address"
        },
        {
          "name": "returnOnCancelAddress",
          "type": "address"
        },
        {
          "name": "startingBlock",
          "type": "uint256"
        },
        {
          "name": "amountPerPeriod",
          "type": "uint256"
        },
        {
          "name": "periodLength",
          "type": "uint256"
        },
        {
          "name": "numOfAgreedPeriods",
          "type": "uint256"
        },
        {
          "name": "cliffInPeriods",
          "type": "uint256"
        },
        {
          "name": "signaturesReqToCancel",
          "type": "uint256"
        },
        {
          "name": "collectedPeriods",
          "type": "uint256"
        },
        {
          "name": "signaturesReceivedCounter",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteParams",
          "type": "bytes32"
        },
        {
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "getParametersHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hashedParameters",
          "type": "bytes32"
        }
      ],
      "name": "updateParameters",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_param",
          "type": "int256"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "name": "_returnOnCancelAddress",
          "type": "address"
        },
        {
          "name": "_startingBlock",
          "type": "uint256"
        },
        {
          "name": "_amountPerPeriod",
          "type": "uint256"
        },
        {
          "name": "_periodLength",
          "type": "uint256"
        },
        {
          "name": "_numOfAgreedPeriods",
          "type": "uint256"
        },
        {
          "name": "_cliffInPeriods",
          "type": "uint256"
        },
        {
          "name": "_signaturesReqToCancel",
          "type": "uint256"
        },
        {
          "name": "_signersArray",
          "type": "address[]"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "proposeVestingAgreement",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_voteParams",
          "type": "bytes32"
        },
        {
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "setParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "revokeSignToCancelAgreement",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "signToCancelAgreement",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "agreements",
      "outputs": [
        {
          "name": "token",
          "type": "address"
        },
        {
          "name": "beneficiary",
          "type": "address"
        },
        {
          "name": "returnOnCancelAddress",
          "type": "address"
        },
        {
          "name": "startingBlock",
          "type": "uint256"
        },
        {
          "name": "amountPerPeriod",
          "type": "uint256"
        },
        {
          "name": "periodLength",
          "type": "uint256"
        },
        {
          "name": "numOfAgreedPeriods",
          "type": "uint256"
        },
        {
          "name": "cliffInPeriods",
          "type": "uint256"
        },
        {
          "name": "signaturesReqToCancel",
          "type": "uint256"
        },
        {
          "name": "collectedPeriods",
          "type": "uint256"
        },
        {
          "name": "signaturesReceivedCounter",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "collect",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        },
        {
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "name": "_returnOnCancelAddress",
          "type": "address"
        },
        {
          "name": "_startingBlock",
          "type": "uint256"
        },
        {
          "name": "_amountPerPeriod",
          "type": "uint256"
        },
        {
          "name": "_periodLength",
          "type": "uint256"
        },
        {
          "name": "_numOfAgreedPeriods",
          "type": "uint256"
        },
        {
          "name": "_cliffInPeriods",
          "type": "uint256"
        },
        {
          "name": "_signaturesReqToCancel",
          "type": "uint256"
        },
        {
          "name": "_signersArray",
          "type": "address[]"
        }
      ],
      "name": "createVestedAgreement",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hashedParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "LogRegisterOrg",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "LogAgreementProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_result",
          "type": "int256"
        }
      ],
      "name": "LogExecutaion",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "NewVestedAgreement",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_signer",
          "type": "address"
        }
      ],
      "name": "SignToCancelAgreement",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_signer",
          "type": "address"
        }
      ],
      "name": "RevokeSignToCancelAgreement",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "LogAgreementCancel",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "uint256"
        }
      ],
      "name": "LogCollect",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "proposalId",
          "type": "bytes32"
        }
      ],
      "name": "LogNewProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a0319909116179055611b828061003b6000396000f3006060604052600436106100c15763ffffffff60e060020a6000350416630250680481146100c657806307377bd6146100fd5780632453732a146101875780632ac2af53146101bb578063310ce4e2146101d357806367b603901461020c57806368e14dac1461025e57806389d75221146102805780638b087f3f146102965780638da5cb5b146102ac578063bd14de96146102db578063ce3f865f146102f1578063f2fde38b14610307578063f76f3fb114610326578063f98e87ba14610378575b600080fd5b34156100d157600080fd5b6100dc60043561038b565b604051918252600160a060020a031660208201526040908101905180910390f35b341561010857600080fd5b61011f600160a060020a03600435166024356103ad565b604051600160a060020a039b8c168152998b1660208b0152979099166040808a01919091526060890196909652608088019490945260a087019290925260c086015260e085015261010084015261012083019390935261014082015261016001905180910390f35b341561019257600080fd5b6101a9600435600160a060020a036024351661041d565b60405190815260200160405180910390f35b34156101c657600080fd5b6101d1600435610457565b005b34156101de57600080fd5b6101f8600435600160a060020a0360243516604435610477565b604051901515815260200160405180910390f35b341561021757600080fd5b6101a9600160a060020a03600480358216916024803582169260443592606435926084359260a4359260c4359260e43592610104359182019291013590610124351661092e565b341561026957600080fd5b6101a9600435600160a060020a0360243516610eab565b341561028b57600080fd5b6101d1600435610eff565b34156102a157600080fd5b6101d1600435610fd0565b34156102b757600080fd5b6102bf6110be565b604051600160a060020a03909116815260200160405180910390f35b34156102e657600080fd5b61011f6004356110cd565b34156102fc57600080fd5b6101d1600435611134565b341561031257600080fd5b6101d1600160a060020a0360043516611380565b341561033157600080fd5b6101a960048035600160a060020a0390811691602480358316926044351691606435916084359160a4359160c4359160e4359161010435916101243591820191013561141b565b341561038357600080fd5b6101a96116ec565b60036020526000908152604090208054600190910154600160a060020a031682565b6002602081815260009384526040808520909152918352912080546001820154928201546003830154600484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a89169997909816979596949593949293919290918b565b60008282604051918252600160a060020a03166c010000000000000000000000000260208201526034016040518091039020905092915050565b60005433600160a060020a0390811691161461047257600080fd5b600155565b6000610481611ac9565b60008033600160a060020a03166003600061049b896116f2565b8152602081019190915260400160002060010154600160a060020a0316146104c257600080fd5b85600160a060020a03167ff121f53b91542562889d6f7b9f02d6bca6f7141c143024d9dcb571024abb6f22888760405191825260208201526040908101905180910390a2600160a060020a03861660009081526002602090815260408083208a84529091529081902090610160905190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152505092506002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008860001916600019168152602001908152602001600020600080820160006101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a0302191690556002820160006101000a815490600160a060020a0302191690556003820160009055600482016000905560058201600090556006820160009055600782016000905560088201600090556009820160009055600a820160009055505084600114156109215785600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561073557600080fd5b6102c65a03f1151561074657600080fd5b50505060405180519050915061076b8360c0015184608001519063ffffffff6117d316565b905081600160a060020a0316636407e43282308960006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b15156107d457600080fd5b6102c65a03f115156107e557600080fd5b50505060405180515050600554600090815260046020526040902083908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0391909116178155602082015160018201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055604082015160028201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155610140820151600a909101555060058054600181019091557f7f4395349c6d693bbcef2c3c3133c966a84bf7d8f720d00fc21c9290a200acf760405160405180910390a25b5060019695505050505050565b6000610938611b3f565b60008060036000610948876116f2565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a03166020820190815290935051600160a060020a03166388737b5e60028551883060006040516020015260405160e060020a63ffffffff871602815260048101949094526024840192909252600160a060020a039081166044840152166064820152608401602060405180830381600087803b15156109f257600080fd5b6102c65a03f11515610a0357600080fd5b505050604051805192505085881015610a1857fe5b60008b11610a2257fe5b5060005b85811015610a9f57600160a060020a03851660009081526002602090815260408083208584529091528120600191600b90910190898985818110610a6657fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055600101610a26565b84600160a060020a031663e1758bd86000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ae557600080fd5b6102c65a03f11515610af657600080fd5b505050604051805190506002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508e6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508d6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508c6002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600301819055508b6002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600401819055508a6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060050181905550896002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060060181905550886002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060070181905550876002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600801819055508260200151600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610e4157600080fd5b6102c65a03f11515610e5257600080fd5b50505060405180515050600160a060020a0385167f829775c7c14610e4ccd53086fdfc812d824654065dc0d529c88ad5a1d9c15e318360405190815260200160405180910390a2509d9c50505050505050505050505050565b600080610eb8848461041d565b6000818152600360205260409020858155600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861617905591508190505b5092915050565b6000818152600460209081526040808320600160a060020a0333168452600b01909152812054829060ff161515610f3557600080fd5b6000838152600460209081526040808320600160a060020a0333168452600c81019092529091205490925060ff161515610f6e57600080fd5b600160a060020a0333166000818152600c8401602052604090819020805460ff19169055600a8401805460001901905584907f1df7a752240c027cfb74557fd4dac3f5e69b4da33fd2bf627af62bec9e8293c0905160405180910390a3505050565b6000818152600460209081526040808320600160a060020a0333168452600b01909152812054829060ff16151561100657600080fd5b6000838152600460209081526040808320600160a060020a0333168452600c81019092529091205490925060ff161561103e57600080fd5b600160a060020a0333166000818152600c8401602052604090819020805460ff19166001908117909155600a85018054909101905584907f034fb4ee0593caf676b3d6d46cc590311e4119cdb1349abb1502647c4076fce2905160405180910390a3816008015482600a015414156110b9576110b983611805565b505050565b600054600160a060020a031681565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a978916999890961697949593949293919290918b565b61113c611ac9565b60008281526004602052604081206001015481908190859033600160a060020a0390811691161461116c57600080fd5b6000868152600460205260409081902090610160905190810160409081528254600160a060020a039081168352600184015481166020840152600284015416908201526003820154606082015260048201546080820152600582015460a08201908152600683015460c0830152600783015460e083015260088301546101008301526009830154610120830152600a90920154610140820152955061122d90516112218760600151439063ffffffff611a9116565b9063ffffffff611aa316565b93508460e0015184101561123d57fe5b8460c001518410611269576112628561012001518660c001519063ffffffff611a9116565b9250611282565b61127f856101200151859063ffffffff611a9116565b92505b6000868152600460205260409020600901546112a4908463ffffffff611aba16565b6000878152600460205260409020600901556112cb6080860151849063ffffffff6117d316565b91508451600160a060020a031663a9059cbb86602001518460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561132f57600080fd5b6102c65a03f1151561134057600080fd5b5050506040518051905050857f4ceba015d961d93f1d6825703b730a8ba05619c005dfd8073aee773dc6725fbb60405160405180910390a2505050505050565b60005433600160a060020a0390811691161461139b57600080fd5b600160a060020a03811615156113b057600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080808386101561142957fe5b6000891161143357fe5b6114438a8963ffffffff6117d316565b91508d600160a060020a03166323b872dd33308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156114af57600080fd5b6102c65a03f115156114c057600080fd5b50505060405180519050508d60046000600554815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508c60046000600554815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508b60046000600554815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508a6004600060055481526020019081526020016000206003018190555089600460006005548152602001908152602001600020600401819055508860046000600554815260200190815260200160002060050181905550876004600060055481526020019081526020016000206006018190555086600460006005548152602001908152602001600020600701819055508560046000600554815260200190815260200160002060080181905550600090505b8381101561169c576005546000908152600460205260408120600191600b9091019087878581811061166357fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055600101611635565b60058054600181019091557f7f4395349c6d693bbcef2c3c3133c966a84bf7d8f720d00fc21c9290a200acf760405160405180910390a25050600554600019019c9b505050505050505050505050565b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561173a57600080fd5b6102c65a03f1151561174b57600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156117b357600080fd5b6102c65a03f115156117c457600080fd5b50505060405180519392505050565b6000808315156117e65760009150610ef8565b508282028284828115156117f657fe5b04146117fe57fe5b9392505050565b61180d611ac9565b6000828152600460205260408082208291610160905190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050925060046000858152602001908152602001600020600080820160006101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a0302191690556002820160006101000a815490600160a060020a0302191690556003820160009055600482016000905560058201600090556006820160009055600782016000905560088201600090556009820160009055600a82016000905550506119c78361012001518460c001519063ffffffff611a9116565b91506119de8360800151839063ffffffff6117d316565b90508251600160a060020a031663a9059cbb84604001518360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a4257600080fd5b6102c65a03f11515611a5357600080fd5b5050506040518051905050837f4016499ca917ca97a24e45e837c1aef655c0f84eef18c36493cf3191c961c83160405160405180910390a250505050565b600082821115611a9d57fe5b50900390565b6000808284811515611ab157fe5b04949350505050565b6000828201838110156117fe57fe5b610160604051908101604052806000600160a060020a031681526020016000600160a060020a031681526020016000600160a060020a0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040805190810160405260008082526020820152905600a165627a7a72305820088e9ed8ebbc61f78d15c8d543458a2689463dc509b13a12d7cbd10b65ae46f00029",
  "deployedBytecode": "0x6060604052600436106100c15763ffffffff60e060020a6000350416630250680481146100c657806307377bd6146100fd5780632453732a146101875780632ac2af53146101bb578063310ce4e2146101d357806367b603901461020c57806368e14dac1461025e57806389d75221146102805780638b087f3f146102965780638da5cb5b146102ac578063bd14de96146102db578063ce3f865f146102f1578063f2fde38b14610307578063f76f3fb114610326578063f98e87ba14610378575b600080fd5b34156100d157600080fd5b6100dc60043561038b565b604051918252600160a060020a031660208201526040908101905180910390f35b341561010857600080fd5b61011f600160a060020a03600435166024356103ad565b604051600160a060020a039b8c168152998b1660208b0152979099166040808a01919091526060890196909652608088019490945260a087019290925260c086015260e085015261010084015261012083019390935261014082015261016001905180910390f35b341561019257600080fd5b6101a9600435600160a060020a036024351661041d565b60405190815260200160405180910390f35b34156101c657600080fd5b6101d1600435610457565b005b34156101de57600080fd5b6101f8600435600160a060020a0360243516604435610477565b604051901515815260200160405180910390f35b341561021757600080fd5b6101a9600160a060020a03600480358216916024803582169260443592606435926084359260a4359260c4359260e43592610104359182019291013590610124351661092e565b341561026957600080fd5b6101a9600435600160a060020a0360243516610eab565b341561028b57600080fd5b6101d1600435610eff565b34156102a157600080fd5b6101d1600435610fd0565b34156102b757600080fd5b6102bf6110be565b604051600160a060020a03909116815260200160405180910390f35b34156102e657600080fd5b61011f6004356110cd565b34156102fc57600080fd5b6101d1600435611134565b341561031257600080fd5b6101d1600160a060020a0360043516611380565b341561033157600080fd5b6101a960048035600160a060020a0390811691602480358316926044351691606435916084359160a4359160c4359160e4359161010435916101243591820191013561141b565b341561038357600080fd5b6101a96116ec565b60036020526000908152604090208054600190910154600160a060020a031682565b6002602081815260009384526040808520909152918352912080546001820154928201546003830154600484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a89169997909816979596949593949293919290918b565b60008282604051918252600160a060020a03166c010000000000000000000000000260208201526034016040518091039020905092915050565b60005433600160a060020a0390811691161461047257600080fd5b600155565b6000610481611ac9565b60008033600160a060020a03166003600061049b896116f2565b8152602081019190915260400160002060010154600160a060020a0316146104c257600080fd5b85600160a060020a03167ff121f53b91542562889d6f7b9f02d6bca6f7141c143024d9dcb571024abb6f22888760405191825260208201526040908101905180910390a2600160a060020a03861660009081526002602090815260408083208a84529091529081902090610160905190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152505092506002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008860001916600019168152602001908152602001600020600080820160006101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a0302191690556002820160006101000a815490600160a060020a0302191690556003820160009055600482016000905560058201600090556006820160009055600782016000905560088201600090556009820160009055600a820160009055505084600114156109215785600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561073557600080fd5b6102c65a03f1151561074657600080fd5b50505060405180519050915061076b8360c0015184608001519063ffffffff6117d316565b905081600160a060020a0316636407e43282308960006040516020015260405160e060020a63ffffffff86160281526004810193909352600160a060020a039182166024840152166044820152606401602060405180830381600087803b15156107d457600080fd5b6102c65a03f115156107e557600080fd5b50505060405180515050600554600090815260046020526040902083908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0391909116178155602082015160018201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055604082015160028201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155610140820151600a909101555060058054600181019091557f7f4395349c6d693bbcef2c3c3133c966a84bf7d8f720d00fc21c9290a200acf760405160405180910390a25b5060019695505050505050565b6000610938611b3f565b60008060036000610948876116f2565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a03166020820190815290935051600160a060020a03166388737b5e60028551883060006040516020015260405160e060020a63ffffffff871602815260048101949094526024840192909252600160a060020a039081166044840152166064820152608401602060405180830381600087803b15156109f257600080fd5b6102c65a03f11515610a0357600080fd5b505050604051805192505085881015610a1857fe5b60008b11610a2257fe5b5060005b85811015610a9f57600160a060020a03851660009081526002602090815260408083208584529091528120600191600b90910190898985818110610a6657fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055600101610a26565b84600160a060020a031663e1758bd86000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ae557600080fd5b6102c65a03f11515610af657600080fd5b505050604051805190506002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508e6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508d6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508c6002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600301819055508b6002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600401819055508a6002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060050181905550896002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060060181905550886002600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060070181905550876002600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600801819055508260200151600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610e4157600080fd5b6102c65a03f11515610e5257600080fd5b50505060405180515050600160a060020a0385167f829775c7c14610e4ccd53086fdfc812d824654065dc0d529c88ad5a1d9c15e318360405190815260200160405180910390a2509d9c50505050505050505050505050565b600080610eb8848461041d565b6000818152600360205260409020858155600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861617905591508190505b5092915050565b6000818152600460209081526040808320600160a060020a0333168452600b01909152812054829060ff161515610f3557600080fd5b6000838152600460209081526040808320600160a060020a0333168452600c81019092529091205490925060ff161515610f6e57600080fd5b600160a060020a0333166000818152600c8401602052604090819020805460ff19169055600a8401805460001901905584907f1df7a752240c027cfb74557fd4dac3f5e69b4da33fd2bf627af62bec9e8293c0905160405180910390a3505050565b6000818152600460209081526040808320600160a060020a0333168452600b01909152812054829060ff16151561100657600080fd5b6000838152600460209081526040808320600160a060020a0333168452600c81019092529091205490925060ff161561103e57600080fd5b600160a060020a0333166000818152600c8401602052604090819020805460ff19166001908117909155600a85018054909101905584907f034fb4ee0593caf676b3d6d46cc590311e4119cdb1349abb1502647c4076fce2905160405180910390a3816008015482600a015414156110b9576110b983611805565b505050565b600054600160a060020a031681565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a978916999890961697949593949293919290918b565b61113c611ac9565b60008281526004602052604081206001015481908190859033600160a060020a0390811691161461116c57600080fd5b6000868152600460205260409081902090610160905190810160409081528254600160a060020a039081168352600184015481166020840152600284015416908201526003820154606082015260048201546080820152600582015460a08201908152600683015460c0830152600783015460e083015260088301546101008301526009830154610120830152600a90920154610140820152955061122d90516112218760600151439063ffffffff611a9116565b9063ffffffff611aa316565b93508460e0015184101561123d57fe5b8460c001518410611269576112628561012001518660c001519063ffffffff611a9116565b9250611282565b61127f856101200151859063ffffffff611a9116565b92505b6000868152600460205260409020600901546112a4908463ffffffff611aba16565b6000878152600460205260409020600901556112cb6080860151849063ffffffff6117d316565b91508451600160a060020a031663a9059cbb86602001518460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561132f57600080fd5b6102c65a03f1151561134057600080fd5b5050506040518051905050857f4ceba015d961d93f1d6825703b730a8ba05619c005dfd8073aee773dc6725fbb60405160405180910390a2505050505050565b60005433600160a060020a0390811691161461139b57600080fd5b600160a060020a03811615156113b057600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080808386101561142957fe5b6000891161143357fe5b6114438a8963ffffffff6117d316565b91508d600160a060020a03166323b872dd33308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156114af57600080fd5b6102c65a03f115156114c057600080fd5b50505060405180519050508d60046000600554815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508c60046000600554815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508b60046000600554815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508a6004600060055481526020019081526020016000206003018190555089600460006005548152602001908152602001600020600401819055508860046000600554815260200190815260200160002060050181905550876004600060055481526020019081526020016000206006018190555086600460006005548152602001908152602001600020600701819055508560046000600554815260200190815260200160002060080181905550600090505b8381101561169c576005546000908152600460205260408120600191600b9091019087878581811061166357fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff1916911515919091179055600101611635565b60058054600181019091557f7f4395349c6d693bbcef2c3c3133c966a84bf7d8f720d00fc21c9290a200acf760405160405180910390a25050600554600019019c9b505050505050505050505050565b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561173a57600080fd5b6102c65a03f1151561174b57600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156117b357600080fd5b6102c65a03f115156117c457600080fd5b50505060405180519392505050565b6000808315156117e65760009150610ef8565b508282028284828115156117f657fe5b04146117fe57fe5b9392505050565b61180d611ac9565b6000828152600460205260408082208291610160905190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050925060046000858152602001908152602001600020600080820160006101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a0302191690556002820160006101000a815490600160a060020a0302191690556003820160009055600482016000905560058201600090556006820160009055600782016000905560088201600090556009820160009055600a82016000905550506119c78361012001518460c001519063ffffffff611a9116565b91506119de8360800151839063ffffffff6117d316565b90508251600160a060020a031663a9059cbb84604001518360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611a4257600080fd5b6102c65a03f11515611a5357600080fd5b5050506040518051905050837f4016499ca917ca97a24e45e837c1aef655c0f84eef18c36493cf3191c961c83160405160405180910390a250505050565b600082821115611a9d57fe5b50900390565b6000808284811515611ab157fe5b04949350505050565b6000828201838110156117fe57fe5b610160604051908101604052806000600160a060020a031681526020016000600160a060020a031681526020016000600160a060020a0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040805190810160405260008082526020820152905600a165627a7a72305820088e9ed8ebbc61f78d15c8d543458a2689463dc509b13a12d7cbd10b65ae46f00029",
  "sourceMap": "219:12942:28:-;;;2337:34;;;;;;;;501:5:33;:18;;-1:-1:-1;;;;;509:10:33;501:18;-1:-1:-1;;;;;;501:18:33;;;;;;219:12942:28;;;;;;",
  "deployedSourceMap": "219:12942:28:-;;;;;;;;;-1:-1:-1;;;219:12942:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1756:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1756:46:28;;;;;;;;;;;;;;;;1576:70;;;;;;;;;;-1:-1:-1;;;;;1576:70:28;;;;;;;;;;-1:-1:-1;;;;;1576:70:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3165:189;;;;;;;;;;;;-1:-1:-1;;;;;3165:189:28;;;;;;;;;;;;;;;;;;;;455:157:25;;;;;;;;;;;;;;;;6444:1099:28;;;;;;;;;;;;-1:-1:-1;;;;;6444:1099:28;;;;;;;;;;;;;;;;;;;;;;;;4146:1918;;;;;;;;;;-1:-1:-1;;;;;4146:1918:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2613:334;;;;;;;;;;;;-1:-1:-1;;;;;2613:334:28;;;;;10939:451;;;;;;;;;;;;;;10194:614;;;;;;;;;;;;;;238:20:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:33;;;;;;;;;;;;;;1850:42:28;;;;;;;;;;;;;;11511:1042;;;;;;;;;;;;;;834:169:33;;;;;;;;;;-1:-1:-1;;;;;834:169:33;;;;;8326:1745:28;;;;;;;;;;;;;-1:-1:-1;;;;;8326:1745:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;345:31:25;;;;;;;;;;;;1756:46:28;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1756:46:28;;:::o;1576:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1576:70:28;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3165:189::-;3282:7;3324:11;3337:8;3314:32;;;;;-1:-1:-1;;;;;3314:32:28;;;;;;;;;;;;;;;;3305:42;;3165:189;;;;:::o;455:157:25:-;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;569:16:25;:36;455:157::o;6444:1099:28:-;6526:4;6778:34;;:::i;:::-;7074:30;7165:17;6676:10;-1:-1:-1;;;;;6608:78:28;:10;:56;6619:44;6654:7;6619:27;:44::i;:::-;6608:56;;;;;;;;;;;;;:64;;;-1:-1:-1;;;;;6608:64:28;:78;6600:87;;;;;;6738:7;-1:-1:-1;;;;;6724:43:28;;6747:11;6760:6;6724:43;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6815:26:28;;;;;;:17;:26;;;;;;;;:39;;;;;;;;;;;6778:76;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6778:76:28;-1:-1:-1;;;;;6778:76:28;-1:-1:-1;;;;;6778:76:28;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6778:76:28;-1:-1:-1;;;;;6778:76:28;-1:-1:-1;;;;;6778:76:28;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6778:76:28;-1:-1:-1;;;;;6778:76:28;-1:-1:-1;;;;;6778:76:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6871:17;:26;6889:7;-1:-1:-1;;;;;6871:26:28;-1:-1:-1;;;;;6871:26:28;;;;;;;;;;;;:39;6898:11;6871:39;;;;;;;;;;;;;;;;;;6864:46;;;;;;;;;-1:-1:-1;;;;;6864:46:28;;;;;;;;;;;;;;-1:-1:-1;;;;;6864:46:28;;;;;;;;;;;;;;-1:-1:-1;;;;;6864:46:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6966:6;6976:1;6966:11;6962:554;;;7134:7;-1:-1:-1;;;;;7127:21:28;;:23;;;;;;;;;;;-1:-1:-1;;;7127:23:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7074:77;;7185:75;7223:17;:36;;;7185:17;:33;;;:37;:75;:37;:75;:::i;:::-;7165:95;;7274:10;-1:-1:-1;;;;;7274:21:28;;7296:12;7310:4;7315:7;7274:49;;;;;;;;-1:-1:-1;;;7274:49:28;;;;;;;;;;;;;-1:-1:-1;;;;;7274:49:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7348:17:28;;7337:29;;;;:10;:29;;;;;7369:17;;;7337:49;;;-1:-1:-1;;7337:49:28;-1:-1:-1;;;;;7337:49:28;;;;;;;;;;;;;;;;-1:-1:-1;;7337:49:28;-1:-1:-1;;;;;7337:49:28;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7337:49:28;-1:-1:-1;;;;;7337:49:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7400:17:28;:19;;;;;;;;7467:39;;;;;;;;;;6962:554;-1:-1:-1;7532:4:28;;6444:1099;-1:-1:-1;;;;;;6444:1099:28:o;4146:1918::-;4526:7;4573:24;;:::i;:::-;4658:18;4911:8;4600:10;:48;4611:36;4639:7;4611:27;:36::i;:::-;4600:48;;;;;;;;;;;;;;;;;4573:75;;;;;;;;;;;;;;;-1:-1:-1;;;;;4573:75:28;;;;;;;;;-1:-1:-1;4679:14:28;-1:-1:-1;;;;;4679:22:28;;4702:1;4705:6;:17;4724:7;4753:4;4679:80;;;;;;;;-1:-1:-1;;;4679:80:28;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4679:80:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4776:46:28;;;;4769:54;;;;4856:1;4840:17;;4833:25;;;;-1:-1:-1;4922:1:28;4906:150;4925:24;;;4906:150;;;-1:-1:-1;;;;;4972:26:28;;;;;;:17;:26;;;;;;;;:38;;;;;;;;5041:4;;4972:46;;;;;5019:13;;5033:3;5019:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5019:18:28;4972:66;;-1:-1:-1;4972:66:28;;;;;;;;-1:-1:-1;4972:66:28;:73;;-1:-1:-1;;4972:73:28;;;;;;;;;;-1:-1:-1;4951:5:28;4906:150;;;5148:7;-1:-1:-1;;;;;5141:27:28;;:29;;;;;;;;;;;-1:-1:-1;;;5141:29:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5094:17;:26;5112:7;-1:-1:-1;;;;;5094:26:28;-1:-1:-1;;;;;5094:26:28;;;;;;;;;;;;:38;5121:10;5094:38;;;;;;;;;;;;;;;;;:44;;;:76;;;;;-1:-1:-1;;;;;5094:76:28;;;;;-1:-1:-1;;;;;5094:76:28;;;;;;5233:12;5180:17;:26;5198:7;-1:-1:-1;;;;;5180:26:28;-1:-1:-1;;;;;5180:26:28;;;;;;;;;;;;:38;5207:10;5180:38;;;;;;;;;;;;;;;;;:50;;;:65;;;;;-1:-1:-1;;;;;5180:65:28;;;;;-1:-1:-1;;;;;5180:65:28;;;;;;5318:22;5255:17;:26;5273:7;-1:-1:-1;;;;;5255:26:28;-1:-1:-1;;;;;5255:26:28;;;;;;;;;;;;:38;5282:10;5255:38;;;;;;;;;;;;;;;;;:60;;;:85;;;;;-1:-1:-1;;;;;5255:85:28;;;;;-1:-1:-1;;;;;5255:85:28;;;;;;5405:14;5350:17;:26;5368:7;-1:-1:-1;;;;;5350:26:28;-1:-1:-1;;;;;5350:26:28;;;;;;;;;;;;:38;5377:10;5350:38;;;;;;;;;;;;;;;;;:52;;:69;;;;5486:16;5429:17;:26;5447:7;-1:-1:-1;;;;;5429:26:28;-1:-1:-1;;;;;5429:26:28;;;;;;;;;;;;:38;5456:10;5429:38;;;;;;;;;;;;;;;;;:54;;:73;;;;5566:13;5512:17;:26;5530:7;-1:-1:-1;;;;;5512:26:28;-1:-1:-1;;;;;5512:26:28;;;;;;;;;;;;:38;5539:10;5512:38;;;;;;;;;;;;;;;;;:51;;:67;;;;5649:19;5589:17;:26;5607:7;-1:-1:-1;;;;;5589:26:28;-1:-1:-1;;;;;5589:26:28;;;;;;;;;;;;:38;5616:10;5589:38;;;;;;;;;;;;;;;;;:57;;:79;;;;5734:15;5678:17;:26;5696:7;-1:-1:-1;;;;;5678:26:28;-1:-1:-1;;;;;5678:26:28;;;;;;;;;;;;:38;5705:10;5678:38;;;;;;;;;;;;;;;;;:53;;:71;;;;5822:22;5759:17;:26;5777:7;-1:-1:-1;;;;;5759:26:28;-1:-1:-1;;;;;5759:26:28;;;;;;;;;;;;:38;5786:10;5759:38;;;;;;;;;;;;;;;;;:60;;:85;;;;5855:6;:14;;;-1:-1:-1;;;;;5855:24:28;;5880:10;5892:1;5895:10;5855:51;;;;;;;;-1:-1:-1;;;5855:51:28;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5855:51:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;5989:41:28;;;6019:10;5989:41;;;;;;;;;;;;;;-1:-1:-1;6047:10:28;4146:1918;-1:-1:-1;;;;;;;;;;;;;4146:1918:28:o;2613:334::-;2721:7;2744:18;2765:40;2783:11;2796:8;2765:17;:40::i;:::-;2815:22;;;;:10;:22;;;;;:47;;;2872:30;;:41;;-1:-1:-1;;2872:41:28;-1:-1:-1;;;;;2872:41:28;;;;;2815:22;-1:-1:-1;2815:22:28;;-1:-1:-1;2613:334:28;;;;;;:::o;10939:451::-;11037:27;2036:24;;;:10;:24;;;;;;;;-1:-1:-1;;;;;2069:10:28;2036:44;;;:32;;:44;;;;;;11013:12;;2036:44;;2028:53;;;;;;;;11067:24;;;;:10;:24;;;;;;;;-1:-1:-1;;;;;11173:10:28;11144:40;;;:28;;;:40;;;;;;;11067:24;;-1:-1:-1;11144:40:28;;11136:49;;;;;;;;-1:-1:-1;;;;;11254:10:28;11225:40;11268:5;11225:40;;;:28;;;:40;;;;;;;:48;;-1:-1:-1;;11225:48:28;;;11283:35;;;:37;;-1:-1:-1;;11283:37:28;;;11359:12;;11331:52;;;;;;;;;;10939:451;;;:::o;10194:614::-;10286:27;2036:24;;;:10;:24;;;;;;;;-1:-1:-1;;;;;2069:10:28;2036:44;;;:32;;:44;;;;;;10262:12;;2036:44;;2028:53;;;;;;;;10316:24;;;;:10;:24;;;;;;;;-1:-1:-1;;;;;10431:10:28;10402:40;;;:28;;;:40;;;;;;;10316:24;;-1:-1:-1;10402:40:28;;10400:42;10392:51;;;;;;-1:-1:-1;;;;;10500:10:28;10471:40;;;;;:28;;;:40;;;;;;;:47;;-1:-1:-1;;10471:47:28;10514:4;10471:47;;;;;;10528:35;;;:37;;;;;;;10598:12;;10576:46;;;;;;;;;;10715:9;:31;;;10676:9;:35;;;:70;10672:130;;;10762:29;10778:12;10762:15;:29::i;:::-;10194:614;;;:::o;238:20:33:-;;;-1:-1:-1;;;;;238:20:33;;:::o;1850:42:28:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1850:42:28;;;;;;;;;;;;;;;;;;;;;;;;:::o;11511:1042::-;11594:26;;:::i;:::-;11657:29;2222:24;;;:10;:24;;;;;:36;;;11657:29;;;;2222:24;;2262:10;-1:-1:-1;;;;;2222:50:28;;;:36;;:50;2214:59;;;;;;11623:24;;;;:10;:24;;;;;;;;11594:53;;;;;;;;;;;;-1:-1:-1;;;;;11594:53:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11689:71:28;;11737:22;11690:41;11707:9;:23;;;11690:12;;:41;:16;:41;:::i;:::-;11689:47;:71;:47;:71;:::i;:::-;11657:103;;11805:9;:24;;;11777:52;;;11770:60;;;;11935:9;:28;;;11907:56;;11903:264;;11994:60;12027:9;:26;;;11994:9;:28;;;:32;:60;:32;:60;:::i;:::-;11979:75;;11903:264;;;12100:56;12129:9;:26;;;12100:24;;:56;:28;:56;:::i;:::-;12085:71;;11903:264;12252:24;;;;:10;:24;;;;;:41;;;:59;;12298:12;12252:59;:45;:59;:::i;:::-;12208:24;;;;:10;:24;;;;;:41;;:103;12367:43;12384:25;;;;12367:12;;:43;:16;:43;:::i;:::-;12343:67;-1:-1:-1;12420:9:28;:15;-1:-1:-1;;;;;12420:24:28;;12445:9;:21;;;12468:16;12420:65;;;;;;;;-1:-1:-1;;;12420:65:28;;;;;;-1:-1:-1;;;;;12420:65:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12533:12;12522:24;;;;;;;;;;11511:1042;;;;;;:::o;834:169:33:-;654:5;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:33;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:33;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:33;-1:-1:-1;;;;;982:16:33;;;;;;;;;;834:169::o;8326:1745:28:-;8718:4;;;8745:46;;;;8738:54;;;;8825:1;8809:17;;8802:25;;;;8882:41;:16;8903:19;8882:41;:20;:41;:::i;:::-;8863:60;;8933:6;-1:-1:-1;;;;;8933:19:28;;8953:10;8965:4;8971:11;8933:50;;;;;;;;-1:-1:-1;;;8933:50:28;;;;;;-1:-1:-1;;;;;8933:50:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9061:6;9023:10;:29;9034:17;;9023:29;;;;;;;;;;;:35;;;:44;;;;;-1:-1:-1;;;;;9023:44:28;;;;;-1:-1:-1;;;;;9023:44:28;;;;;;9121:12;9077:10;:29;9088:17;;9077:29;;;;;;;;;;;:41;;;:56;;;;;-1:-1:-1;;;;;9077:56:28;;;;;-1:-1:-1;;;;;9077:56:28;;;;;;9197:22;9143:10;:29;9154:17;;9143:29;;;;;;;;;;;:51;;;:76;;;;;-1:-1:-1;;;;;9143:76:28;;;;;-1:-1:-1;;;;;9143:76:28;;;;;;9275:14;9229:10;:29;9240:17;;9229:29;;;;;;;;;;;:43;;:60;;;;9347:16;9299:10;:29;9310:17;;9299:29;;;;;;;;;;;:45;;:64;;;;9418:13;9373:10;:29;9384:17;;9373:29;;;;;;;;;;;:42;;:58;;;;9492:19;9441:10;:29;9452:17;;9441:29;;;;;;;;;;;:48;;:70;;;;9568:15;9521:10;:29;9532:17;;9521:29;;;;;;;;;;;:44;;:62;;;;9647:22;9593:10;:29;9604:17;;9593:29;;;;;;;;;;;:51;;:76;;;;9734:1;9723:12;;9718:141;9737:24;;;9718:141;;;9795:17;;9784:29;;;;:10;:29;;;;;9844:4;;9784:37;;;;;9822:13;;9836:3;9822:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9822:18:28;9784:57;;-1:-1:-1;9784:57:28;;;;;;;;-1:-1:-1;9784:57:28;:64;;-1:-1:-1;;9784:64:28;;;;;;;;;;-1:-1:-1;9763:5:28;9718:141;;;9914:17;:19;;;;;;;;9988:39;;;;;;;;;;-1:-1:-1;;10044:17:28;;-1:-1:-1;;10044:19:28;;8326:1745;-1:-1:-1;;;;;;;;;;;;8326:1745:28:o;345:31:25:-;;;;:::o;707:191::-;786:7;832;-1:-1:-1;;;;;832:13:25;;:15;;;;;;;;;;;-1:-1:-1;;;832:15:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;812:56:25;;869:4;882:7;812:79;;;;;;;;-1:-1:-1;;;812:79:25;;;;;;-1:-1:-1;;;;;812:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;707:191;-1:-1:-1;;;707:191:25:o;138:173:31:-;196:7;;215:6;;211:35;;;238:1;231:8;;;;211:35;-1:-1:-1;263:5:31;;;267:1;263;:5;281;;;;;;;;:10;274:18;;;;305:1;138:173;-1:-1:-1;;;138:173:31:o;12678:481:28:-;12741:26;;:::i;:::-;12846:16;12770:24;;;:10;:24;;;;;;12846:16;;12741:53;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12741:53:28;-1:-1:-1;;;;;12741:53:28;-1:-1:-1;;;;;12741:53:28;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12741:53:28;-1:-1:-1;;;;;12741:53:28;-1:-1:-1;;;;;12741:53:28;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12741:53:28;-1:-1:-1;;;;;12741:53:28;-1:-1:-1;;;;;12741:53:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12812:10;:24;12823:12;12812:24;;;;;;;;;;;;12804:32;;;;;;;;;-1:-1:-1;;;;;12804:32:28;;;;;;;;;;;;;;-1:-1:-1;;;;;12804:32:28;;;;;;;;;;;;;;-1:-1:-1;;;;;12804:32:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12865:60;12898:9;:26;;;12865:9;:28;;;:32;:60;:32;:60;:::i;:::-;12846:79;;12953:42;12969:9;:25;;;12953:11;;:42;:15;:42;:::i;:::-;12935:60;-1:-1:-1;13005:9:28;:15;-1:-1:-1;;;;;13005:24:28;;13030:9;:31;;;13063:10;13005:69;;;;;;;;-1:-1:-1;;;13005:69:28;;;;;;-1:-1:-1;;;;;13005:69:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13139:12;13120:32;;;;;;;;;;12678:481;;;;:::o;584:110:31:-;642:7;664:6;;;;657:14;;;;-1:-1:-1;684:5:31;;;584:110::o;315:265::-;373:7;462:9;478:1;474;:5;;;;;;;;;315:265;-1:-1:-1;;;;315:265:31:o;698:129::-;756:7;783:5;;;801:6;;;;794:14;;;219:12942:28;;;;;;;;;;;-1:-1:-1;;;;;219:12942:28;;;;;;-1:-1:-1;;;;;219:12942:28;;;;;;-1:-1:-1;;;;;219:12942:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"../VotingMachines/IntVoteInterface.sol\";\nimport \"./UniversalScheme.sol\";\n\n\n/**\n * @title A schme for vesting.\n * @dev Can be used without organization just as a vesting component.\n */\n\ncontract VestingScheme is UniversalScheme, ExecutableInterface {\n    using SafeMath for uint;\n\n    event LogRegisterOrg(address indexed _avatar);\n    event LogAgreementProposal(address indexed _avatar, bytes32 _proposalId);\n    event LogExecutaion(address indexed _avatar, bytes32 _proposalId, int _result);\n    event NewVestedAgreement(uint indexed _agreementId);\n    event SignToCancelAgreement(uint indexed _agreementId, address indexed _signer);\n    event RevokeSignToCancelAgreement(uint indexed _agreementId, address indexed _signer);\n    event LogAgreementCancel(uint indexed _agreementId);\n    event LogCollect(uint indexed _agreementId);\n\n\n    // The data for each vested agreement:\n    struct Agreement {\n        StandardToken token;\n        address beneficiary;\n        address returnOnCancelAddress;\n        uint startingBlock;\n        uint amountPerPeriod;\n        uint periodLength;\n        uint numOfAgreedPeriods;\n        uint cliffInPeriods;\n        uint signaturesReqToCancel;\n        uint collectedPeriods;\n        uint signaturesReceivedCounter;\n        mapping(address=>bool) signers;\n        mapping(address=>bool) signaturesReceived;\n    }\n\n\n    struct Parameters {\n        bytes32 voteParams;\n        IntVoteInterface intVote;\n    }\n\n    // A mapping from the organization (Avatar) address to the saved data of the organization:\n    mapping(address=>mapping(bytes32=>Agreement)) public organizationsData;\n\n    // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n    mapping(bytes32=>Parameters) public parameters;\n\n    // A mapping from index to Agreement\n    mapping(uint=>Agreement) public agreements;\n\n    uint agreementsCounter;\n\n    // Modifier, only the signers on an agreement:\n    modifier onlySigner(uint _agreementId) {\n        require(agreements[_agreementId].signers[msg.sender]);\n        _;\n    }\n\n    // Modifier, only the beneficiary on an agreement:\n    modifier onlyBeneficiary(uint _agreementId) {\n        require(agreements[_agreementId].beneficiary == msg.sender);\n        _;\n    }\n\n    /**\n     * @dev Constructor\n     */\n    function VestingScheme() public {}\n\n    /**\n    * @dev Hash the parameters, save them if necessary, and return the hash value\n    * @param _voteParams -  voting parameters\n    * @param _intVote  - voting machine contract.\n    * @return bytes32 -the parameters hash\n    */\n    function setParameters(\n        bytes32 _voteParams,\n        IntVoteInterface _intVote\n    ) public returns(bytes32)\n    {\n        bytes32 paramsHash = getParametersHash(_voteParams, _intVote);\n        parameters[paramsHash].voteParams = _voteParams;\n        parameters[paramsHash].intVote = _intVote;\n        return paramsHash;\n    }\n\n    /**\n    * @dev Hash the parameters, and return the hash value\n    * @param _voteParams -  voting parameters\n    * @param _intVote  - voting machine contract.\n    * @return bytes32 -the parameters hash\n    */\n    function getParametersHash(\n        bytes32 _voteParams,\n        IntVoteInterface _intVote\n    ) public pure returns(bytes32)\n    {\n        return  (keccak256(_voteParams, _intVote));\n    }\n\n    /**\n    * @dev Proposing a vesting agreement in an organization.\n    * @param _beneficiary the beneficiary of the agreement.\n    * @param _returnOnCancelAddress where to send the tokens in case of stoping.\n    * @param _startingBlock the block from which the agreement starts.\n    * @param _amountPerPeriod amount of tokens per period.\n    * @param _periodLength period length in blocks.\n    * @param _numOfAgreedPeriods how many periods agreed on.\n    * @param _cliffInPeriods the length of the cliff in periods.\n    * @param _signaturesReqToCancel number of signatures required to cancel agreement.\n    * @param _signersArray avatar array of addresses that can sign to cancel agreement.\n    * @param _avatar avatar of the organization.\n    * @return bytes32 the proposalId\n    */\n    function proposeVestingAgreement(\n        address _beneficiary,\n        address _returnOnCancelAddress,\n        uint _startingBlock,\n        uint _amountPerPeriod,\n        uint _periodLength,\n        uint _numOfAgreedPeriods,\n        uint _cliffInPeriods,\n        uint _signaturesReqToCancel,\n        address[] _signersArray,\n        Avatar _avatar\n    )\n    external\n    returns(bytes32)\n    {\n        // Open voting:\n        Parameters memory params = parameters[getParametersFromController(_avatar)];\n        bytes32 proposalId = params.intVote.propose(2, params.voteParams, _avatar, ExecutableInterface(this));\n        assert(_signaturesReqToCancel >= _signersArray.length);\n        assert(_periodLength > 0);\n        // Write the signers mapping:\n        for (uint cnt = 0; cnt<_signersArray.length; cnt++) {\n            organizationsData[_avatar][proposalId].signers[_signersArray[cnt]] = true;\n        }\n        // Write parameters:\n        organizationsData[_avatar][proposalId].token = Avatar(_avatar).nativeToken();\n        organizationsData[_avatar][proposalId].beneficiary = _beneficiary;\n        organizationsData[_avatar][proposalId].returnOnCancelAddress = _returnOnCancelAddress;\n        organizationsData[_avatar][proposalId].startingBlock = _startingBlock;\n        organizationsData[_avatar][proposalId].amountPerPeriod = _amountPerPeriod;\n        organizationsData[_avatar][proposalId].periodLength = _periodLength;\n        organizationsData[_avatar][proposalId].numOfAgreedPeriods = _numOfAgreedPeriods;\n        organizationsData[_avatar][proposalId].cliffInPeriods = _cliffInPeriods;\n        organizationsData[_avatar][proposalId].signaturesReqToCancel = _signaturesReqToCancel;\n\n        params.intVote.ownerVote(proposalId, 1, msg.sender); // Automatically votes `yes` in the name of the opener.\n\n        // Log:\n        LogAgreementProposal(_avatar, proposalId);\n        return proposalId;\n    }\n\n    /**\n    * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n    * @param _proposalId the ID of the voting in the voting machine\n    * @param _avatar address of the controller\n    * @param _param a parameter of the voting result, 0 is no and 1 is yes.\n    * @return bool which represents a successful of the function\n    */\n    function execute(bytes32 _proposalId, address _avatar, int _param) public returns(bool) {\n        // Check the caller is indeed the voting machine:\n        require(parameters[getParametersFromController(Avatar(_avatar))].intVote == msg.sender);\n\n        // Log execition:\n        LogExecutaion(_avatar, _proposalId, _param);\n\n        Agreement memory proposedAgreement = organizationsData[_avatar][_proposalId];\n        delete organizationsData[_avatar][_proposalId];\n\n        // Check if vote was successful:\n        if (_param == 1) {\n        // Define controller and mint tokens, check minting actually took place:\n            ControllerInterface controller = ControllerInterface(Avatar(_avatar).owner());\n            uint tokensToMint = proposedAgreement.amountPerPeriod.mul(proposedAgreement.numOfAgreedPeriods);\n            controller.mintTokens(tokensToMint, this,_avatar);\n            agreements[agreementsCounter] = proposedAgreement;\n            agreementsCounter++;\n        // Log the new agreement:\n            NewVestedAgreement(agreementsCounter-1);\n       }\n        return true;\n    }\n\n    /**\n    * @dev Creating a vesting agreement.\n    * @param _token the relevant token in the agreement.\n    * @param _beneficiary the beneficiary of the agreement.\n    * @param _returnOnCancelAddress where to send the tokens in case of stoping.\n    * @param _startingBlock the block from which the agreement starts.\n    * @param _amountPerPeriod amount of tokens per period.\n    * @param _periodLength period length in blocks.\n    * @param _numOfAgreedPeriods how many periods agreed on.\n    * @param _cliffInPeriods the length of the cliff in periods.\n    * @param _signaturesReqToCancel number of signatures required to cancel agreement.\n    * @param _signersArray avatar array of addresses that can sign to cancel agreement.\n    * @return uint the agreement index.\n    */\n    function createVestedAgreement(\n        StandardToken _token,\n        address _beneficiary,\n        address _returnOnCancelAddress,\n        uint _startingBlock,\n        uint _amountPerPeriod,\n        uint _periodLength,\n        uint _numOfAgreedPeriods,\n        uint _cliffInPeriods,\n        uint _signaturesReqToCancel,\n        address[] _signersArray\n    )\n        external\n        returns(uint)\n    {\n        assert(_signaturesReqToCancel >= _signersArray.length);\n        assert(_periodLength > 0);\n        // Collect funds:\n        uint totalAmount = _amountPerPeriod.mul(_numOfAgreedPeriods);\n        _token.transferFrom(msg.sender, this, totalAmount);\n\n        // Write parameters:\n        agreements[agreementsCounter].token = _token;\n        agreements[agreementsCounter].beneficiary = _beneficiary;\n        agreements[agreementsCounter].returnOnCancelAddress = _returnOnCancelAddress;\n        agreements[agreementsCounter].startingBlock = _startingBlock;\n        agreements[agreementsCounter].amountPerPeriod = _amountPerPeriod;\n        agreements[agreementsCounter].periodLength = _periodLength;\n        agreements[agreementsCounter].numOfAgreedPeriods = _numOfAgreedPeriods;\n        agreements[agreementsCounter].cliffInPeriods = _cliffInPeriods;\n        agreements[agreementsCounter].signaturesReqToCancel = _signaturesReqToCancel;\n\n        // Write the signers mapping:\n        for (uint cnt = 0; cnt<_signersArray.length; cnt++) {\n            agreements[agreementsCounter].signers[_signersArray[cnt]] = true;\n        }\n\n        // Increment the agreements counter:\n        agreementsCounter++;\n\n        // Log new agreement and return id:\n        NewVestedAgreement(agreementsCounter-1);\n        return(agreementsCounter-1);\n    }\n\n    /**\n    * @dev Function to sign to cancel an agreement.\n    * @param _agreementId the relevant agreement.\n    */\n    function signToCancelAgreement(uint _agreementId) public onlySigner(_agreementId) {\n        Agreement storage agreement = agreements[_agreementId];\n\n        // Check attempt to double sign:\n        require(! agreement.signaturesReceived[msg.sender]);\n\n        // Sign:\n        agreement.signaturesReceived[msg.sender] = true;\n        agreement.signaturesReceivedCounter++;\n\n        SignToCancelAgreement(_agreementId,msg.sender);\n\n        // Check if threshold crossed:\n        if (agreement.signaturesReceivedCounter == agreement.signaturesReqToCancel) {\n            cancelAgreement(_agreementId);\n        }\n    }\n\n    /**\n    * @dev Function to revoke vote for canceling agreement.\n    * @param _agreementId the relevant agreement.\n    */\n    function revokeSignToCancelAgreement(uint _agreementId) public onlySigner(_agreementId) {\n        Agreement storage agreement = agreements[_agreementId];\n\n        // Check signer did sign:\n        require(agreement.signaturesReceived[msg.sender]);\n\n        // Revoke signature:\n        agreement.signaturesReceived[msg.sender] = false;\n        agreement.signaturesReceivedCounter--;\n\n        RevokeSignToCancelAgreement(_agreementId,msg.sender);\n    }\n\n    /**\n    * @dev Function for a beneficiary to collect.\n    * @param _agreementId the relevant agreement.\n    */\n    function collect(uint _agreementId) public onlyBeneficiary(_agreementId) {\n        Agreement memory agreement = agreements[_agreementId];\n        uint periodsFromStartingBlock = (block.number.sub(agreement.startingBlock)).div(agreement.periodLength);\n        assert(periodsFromStartingBlock >= agreement.cliffInPeriods);\n\n        // Compute periods to pay:\n        uint periodsToPay;\n        if (periodsFromStartingBlock >= agreement.numOfAgreedPeriods) {\n            periodsToPay = agreement.numOfAgreedPeriods.sub(agreement.collectedPeriods);\n        } else {\n            periodsToPay = periodsFromStartingBlock.sub(agreement.collectedPeriods);\n        }\n        // Update periods paid:\n        agreements[_agreementId].collectedPeriods = agreements[_agreementId].collectedPeriods.add(periodsToPay);\n\n        // Transfer:\n        uint tokensToTransfer = periodsToPay.mul(agreement.amountPerPeriod);\n        agreement.token.transfer(agreement.beneficiary, tokensToTransfer);\n\n        // Log collecing:\n        LogCollect(_agreementId);\n    }\n\n    /**\n    * @dev Internal function, to cancel an agreement.\n    * @param _agreementId the relevant agreement.\n    */\n    function cancelAgreement(uint _agreementId) internal {\n        Agreement memory agreement = agreements[_agreementId];\n        delete  agreements[_agreementId];\n        uint periodsLeft = agreement.numOfAgreedPeriods.sub(agreement.collectedPeriods);\n        uint tokensLeft = periodsLeft.mul(agreement.amountPerPeriod);\n        agreement.token.transfer(agreement.returnOnCancelAddress, tokensLeft);\n        // Log canceling agreement:\n        LogAgreementCancel(_agreementId);\n    }\n}\n",
  "sourcePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/VestingScheme.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/VestingScheme.sol",
      "exportedSymbols": {
        "VestingScheme": [
          9762
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 8885,
        "name": "PragmaDirective",
        "src": "0:24:28"
      },
      {
        "attributes": {
          "SourceUnit": 2652,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/VotingMachines/IntVoteInterface.sol",
          "file": "../VotingMachines/IntVoteInterface.sol",
          "scope": 9763,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 8886,
        "name": "ImportDirective",
        "src": "26:48:28"
      },
      {
        "attributes": {
          "SourceUnit": 8466,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/UniversalScheme.sol",
          "file": "./UniversalScheme.sol",
          "scope": 9763,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 8887,
        "name": "ImportDirective",
        "src": "75:31:28"
      },
      {
        "attributes": {
          "contractDependencies": [
            6617,
            8465,
            8484,
            10301
          ],
          "contractKind": "contract",
          "documentation": "@title A schme for vesting.\n@dev Can be used without organization just as a vesting component.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            9762,
            6617,
            8465,
            8484,
            10301
          ],
          "name": "VestingScheme",
          "scope": 9763
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "UniversalScheme",
                  "referencedDeclaration": 8465,
                  "type": "contract UniversalScheme"
                },
                "id": 8888,
                "name": "UserDefinedTypeName",
                "src": "245:15:28"
              }
            ],
            "id": 8889,
            "name": "InheritanceSpecifier",
            "src": "245:15:28"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ExecutableInterface",
                  "referencedDeclaration": 6617,
                  "type": "contract ExecutableInterface"
                },
                "id": 8890,
                "name": "UserDefinedTypeName",
                "src": "262:19:28"
              }
            ],
            "id": 8891,
            "name": "InheritanceSpecifier",
            "src": "262:19:28"
          },
          {
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "SafeMath",
                  "referencedDeclaration": 10221,
                  "type": "library SafeMath"
                },
                "id": 8892,
                "name": "UserDefinedTypeName",
                "src": "294:8:28"
              },
              {
                "attributes": {
                  "name": "uint",
                  "type": "uint256"
                },
                "id": 8893,
                "name": "ElementaryTypeName",
                "src": "307:4:28"
              }
            ],
            "id": 8894,
            "name": "UsingForDirective",
            "src": "288:24:28"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "LogRegisterOrg"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8898,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8895,
                        "name": "ElementaryTypeName",
                        "src": "339:7:28"
                      }
                    ],
                    "id": 8896,
                    "name": "VariableDeclaration",
                    "src": "339:23:28"
                  }
                ],
                "id": 8897,
                "name": "ParameterList",
                "src": "338:25:28"
              }
            ],
            "id": 8898,
            "name": "EventDefinition",
            "src": "318:46:28"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "LogAgreementProposal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8904,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8899,
                        "name": "ElementaryTypeName",
                        "src": "396:7:28"
                      }
                    ],
                    "id": 8900,
                    "name": "VariableDeclaration",
                    "src": "396:23:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_proposalId",
                      "scope": 8904,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8901,
                        "name": "ElementaryTypeName",
                        "src": "421:7:28"
                      }
                    ],
                    "id": 8902,
                    "name": "VariableDeclaration",
                    "src": "421:19:28"
                  }
                ],
                "id": 8903,
                "name": "ParameterList",
                "src": "395:46:28"
              }
            ],
            "id": 8904,
            "name": "EventDefinition",
            "src": "369:73:28"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "LogExecutaion"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8912,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8905,
                        "name": "ElementaryTypeName",
                        "src": "467:7:28"
                      }
                    ],
                    "id": 8906,
                    "name": "VariableDeclaration",
                    "src": "467:23:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_proposalId",
                      "scope": 8912,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8907,
                        "name": "ElementaryTypeName",
                        "src": "492:7:28"
                      }
                    ],
                    "id": 8908,
                    "name": "VariableDeclaration",
                    "src": "492:19:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_result",
                      "scope": 8912,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int",
                          "type": "int256"
                        },
                        "id": 8909,
                        "name": "ElementaryTypeName",
                        "src": "513:3:28"
                      }
                    ],
                    "id": 8910,
                    "name": "VariableDeclaration",
                    "src": "513:11:28"
                  }
                ],
                "id": 8911,
                "name": "ParameterList",
                "src": "466:59:28"
              }
            ],
            "id": 8912,
            "name": "EventDefinition",
            "src": "447:79:28"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "NewVestedAgreement"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 8916,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8913,
                        "name": "ElementaryTypeName",
                        "src": "556:4:28"
                      }
                    ],
                    "id": 8914,
                    "name": "VariableDeclaration",
                    "src": "556:25:28"
                  }
                ],
                "id": 8915,
                "name": "ParameterList",
                "src": "555:27:28"
              }
            ],
            "id": 8916,
            "name": "EventDefinition",
            "src": "531:52:28"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "SignToCancelAgreement"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 8922,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8917,
                        "name": "ElementaryTypeName",
                        "src": "616:4:28"
                      }
                    ],
                    "id": 8918,
                    "name": "VariableDeclaration",
                    "src": "616:25:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_signer",
                      "scope": 8922,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8919,
                        "name": "ElementaryTypeName",
                        "src": "643:7:28"
                      }
                    ],
                    "id": 8920,
                    "name": "VariableDeclaration",
                    "src": "643:23:28"
                  }
                ],
                "id": 8921,
                "name": "ParameterList",
                "src": "615:52:28"
              }
            ],
            "id": 8922,
            "name": "EventDefinition",
            "src": "588:80:28"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RevokeSignToCancelAgreement"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 8928,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8923,
                        "name": "ElementaryTypeName",
                        "src": "707:4:28"
                      }
                    ],
                    "id": 8924,
                    "name": "VariableDeclaration",
                    "src": "707:25:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_signer",
                      "scope": 8928,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8925,
                        "name": "ElementaryTypeName",
                        "src": "734:7:28"
                      }
                    ],
                    "id": 8926,
                    "name": "VariableDeclaration",
                    "src": "734:23:28"
                  }
                ],
                "id": 8927,
                "name": "ParameterList",
                "src": "706:52:28"
              }
            ],
            "id": 8928,
            "name": "EventDefinition",
            "src": "673:86:28"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "LogAgreementCancel"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 8932,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8929,
                        "name": "ElementaryTypeName",
                        "src": "789:4:28"
                      }
                    ],
                    "id": 8930,
                    "name": "VariableDeclaration",
                    "src": "789:25:28"
                  }
                ],
                "id": 8931,
                "name": "ParameterList",
                "src": "788:27:28"
              }
            ],
            "id": 8932,
            "name": "EventDefinition",
            "src": "764:52:28"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "LogCollect"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_agreementId",
                      "scope": 8936,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8933,
                        "name": "ElementaryTypeName",
                        "src": "838:4:28"
                      }
                    ],
                    "id": 8934,
                    "name": "VariableDeclaration",
                    "src": "838:25:28"
                  }
                ],
                "id": 8935,
                "name": "ParameterList",
                "src": "837:27:28"
              }
            ],
            "id": 8936,
            "name": "EventDefinition",
            "src": "821:44:28"
          },
          {
            "attributes": {
              "canonicalName": "VestingScheme.Agreement",
              "name": "Agreement",
              "scope": 9762,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "token",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract StandardToken",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "StandardToken",
                      "referencedDeclaration": 10855,
                      "type": "contract StandardToken"
                    },
                    "id": 8937,
                    "name": "UserDefinedTypeName",
                    "src": "942:13:28"
                  }
                ],
                "id": 8938,
                "name": "VariableDeclaration",
                "src": "942:19:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "beneficiary",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8939,
                    "name": "ElementaryTypeName",
                    "src": "971:7:28"
                  }
                ],
                "id": 8940,
                "name": "VariableDeclaration",
                "src": "971:19:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "returnOnCancelAddress",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8941,
                    "name": "ElementaryTypeName",
                    "src": "1000:7:28"
                  }
                ],
                "id": 8942,
                "name": "VariableDeclaration",
                "src": "1000:29:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "startingBlock",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8943,
                    "name": "ElementaryTypeName",
                    "src": "1039:4:28"
                  }
                ],
                "id": 8944,
                "name": "VariableDeclaration",
                "src": "1039:18:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "amountPerPeriod",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8945,
                    "name": "ElementaryTypeName",
                    "src": "1067:4:28"
                  }
                ],
                "id": 8946,
                "name": "VariableDeclaration",
                "src": "1067:20:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "periodLength",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8947,
                    "name": "ElementaryTypeName",
                    "src": "1097:4:28"
                  }
                ],
                "id": 8948,
                "name": "VariableDeclaration",
                "src": "1097:17:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "numOfAgreedPeriods",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8949,
                    "name": "ElementaryTypeName",
                    "src": "1124:4:28"
                  }
                ],
                "id": 8950,
                "name": "VariableDeclaration",
                "src": "1124:23:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "cliffInPeriods",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8951,
                    "name": "ElementaryTypeName",
                    "src": "1157:4:28"
                  }
                ],
                "id": 8952,
                "name": "VariableDeclaration",
                "src": "1157:19:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "signaturesReqToCancel",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8953,
                    "name": "ElementaryTypeName",
                    "src": "1186:4:28"
                  }
                ],
                "id": 8954,
                "name": "VariableDeclaration",
                "src": "1186:26:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "collectedPeriods",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8955,
                    "name": "ElementaryTypeName",
                    "src": "1222:4:28"
                  }
                ],
                "id": 8956,
                "name": "VariableDeclaration",
                "src": "1222:21:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "signaturesReceivedCounter",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8957,
                    "name": "ElementaryTypeName",
                    "src": "1253:4:28"
                  }
                ],
                "id": 8958,
                "name": "VariableDeclaration",
                "src": "1253:30:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "signers",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(address => bool)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(address => bool)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8959,
                        "name": "ElementaryTypeName",
                        "src": "1301:7:28"
                      },
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 8960,
                        "name": "ElementaryTypeName",
                        "src": "1310:4:28"
                      }
                    ],
                    "id": 8961,
                    "name": "Mapping",
                    "src": "1293:22:28"
                  }
                ],
                "id": 8962,
                "name": "VariableDeclaration",
                "src": "1293:30:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "signaturesReceived",
                  "scope": 8967,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(address => bool)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(address => bool)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8963,
                        "name": "ElementaryTypeName",
                        "src": "1341:7:28"
                      },
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 8964,
                        "name": "ElementaryTypeName",
                        "src": "1350:4:28"
                      }
                    ],
                    "id": 8965,
                    "name": "Mapping",
                    "src": "1333:22:28"
                  }
                ],
                "id": 8966,
                "name": "VariableDeclaration",
                "src": "1333:41:28"
              }
            ],
            "id": 8967,
            "name": "StructDefinition",
            "src": "915:466:28"
          },
          {
            "attributes": {
              "canonicalName": "VestingScheme.Parameters",
              "name": "Parameters",
              "scope": 9762,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "voteParams",
                  "scope": 8972,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8968,
                    "name": "ElementaryTypeName",
                    "src": "1416:7:28"
                  }
                ],
                "id": 8969,
                "name": "VariableDeclaration",
                "src": "1416:18:28"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "intVote",
                  "scope": 8972,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract IntVoteInterface",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "IntVoteInterface",
                      "referencedDeclaration": 2651,
                      "type": "contract IntVoteInterface"
                    },
                    "id": 8970,
                    "name": "UserDefinedTypeName",
                    "src": "1444:16:28"
                  }
                ],
                "id": 8971,
                "name": "VariableDeclaration",
                "src": "1444:24:28"
              }
            ],
            "id": 8972,
            "name": "StructDefinition",
            "src": "1388:87:28"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organizationsData",
              "scope": 9762,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8973,
                    "name": "ElementaryTypeName",
                    "src": "1584:7:28"
                  },
                  {
                    "attributes": {
                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8974,
                        "name": "ElementaryTypeName",
                        "src": "1601:7:28"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Agreement",
                          "referencedDeclaration": 8967,
                          "type": "struct VestingScheme.Agreement storage pointer"
                        },
                        "id": 8975,
                        "name": "UserDefinedTypeName",
                        "src": "1610:9:28"
                      }
                    ],
                    "id": 8976,
                    "name": "Mapping",
                    "src": "1593:27:28"
                  }
                ],
                "id": 8977,
                "name": "Mapping",
                "src": "1576:45:28"
              }
            ],
            "id": 8978,
            "name": "VariableDeclaration",
            "src": "1576:70:28"
          },
          {
            "attributes": {
              "constant": false,
              "name": "parameters",
              "scope": 9762,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8979,
                    "name": "ElementaryTypeName",
                    "src": "1764:7:28"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Parameters",
                      "referencedDeclaration": 8972,
                      "type": "struct VestingScheme.Parameters storage pointer"
                    },
                    "id": 8980,
                    "name": "UserDefinedTypeName",
                    "src": "1773:10:28"
                  }
                ],
                "id": 8981,
                "name": "Mapping",
                "src": "1756:28:28"
              }
            ],
            "id": 8982,
            "name": "VariableDeclaration",
            "src": "1756:46:28"
          },
          {
            "attributes": {
              "constant": false,
              "name": "agreements",
              "scope": 9762,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8983,
                    "name": "ElementaryTypeName",
                    "src": "1858:4:28"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Agreement",
                      "referencedDeclaration": 8967,
                      "type": "struct VestingScheme.Agreement storage pointer"
                    },
                    "id": 8984,
                    "name": "UserDefinedTypeName",
                    "src": "1864:9:28"
                  }
                ],
                "id": 8985,
                "name": "Mapping",
                "src": "1850:24:28"
              }
            ],
            "id": 8986,
            "name": "VariableDeclaration",
            "src": "1850:42:28"
          },
          {
            "attributes": {
              "constant": false,
              "name": "agreementsCounter",
              "scope": 9762,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint256",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint",
                  "type": "uint256"
                },
                "id": 8987,
                "name": "ElementaryTypeName",
                "src": "1899:4:28"
              }
            ],
            "id": 8988,
            "name": "VariableDeclaration",
            "src": "1899:22:28"
          },
          {
            "attributes": {
              "name": "onlySigner",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 9004,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 8989,
                        "name": "ElementaryTypeName",
                        "src": "1999:4:28"
                      }
                    ],
                    "id": 8990,
                    "name": "VariableDeclaration",
                    "src": "1999:17:28"
                  }
                ],
                "id": 8991,
                "name": "ParameterList",
                "src": "1998:19:28"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8992,
                            "name": "Identifier",
                            "src": "2028:7:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "signers",
                                  "referencedDeclaration": 8962,
                                  "type": "mapping(address => bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct VestingScheme.Agreement storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8986,
                                          "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                          "value": "agreements"
                                        },
                                        "id": 8993,
                                        "name": "Identifier",
                                        "src": "2036:10:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8990,
                                          "type": "uint256",
                                          "value": "_agreementId"
                                        },
                                        "id": 8994,
                                        "name": "Identifier",
                                        "src": "2047:12:28"
                                      }
                                    ],
                                    "id": 8995,
                                    "name": "IndexAccess",
                                    "src": "2036:24:28"
                                  }
                                ],
                                "id": 8996,
                                "name": "MemberAccess",
                                "src": "2036:32:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 8997,
                                    "name": "Identifier",
                                    "src": "2069:3:28"
                                  }
                                ],
                                "id": 8998,
                                "name": "MemberAccess",
                                "src": "2069:10:28"
                              }
                            ],
                            "id": 8999,
                            "name": "IndexAccess",
                            "src": "2036:44:28"
                          }
                        ],
                        "id": 9000,
                        "name": "FunctionCall",
                        "src": "2028:53:28"
                      }
                    ],
                    "id": 9001,
                    "name": "ExpressionStatement",
                    "src": "2028:53:28"
                  },
                  {
                    "id": 9002,
                    "name": "PlaceholderStatement",
                    "src": "2091:1:28"
                  }
                ],
                "id": 9003,
                "name": "Block",
                "src": "2018:81:28"
              }
            ],
            "id": 9004,
            "name": "ModifierDefinition",
            "src": "1979:120:28"
          },
          {
            "attributes": {
              "name": "onlyBeneficiary",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 9020,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9005,
                        "name": "ElementaryTypeName",
                        "src": "2185:4:28"
                      }
                    ],
                    "id": 9006,
                    "name": "VariableDeclaration",
                    "src": "2185:17:28"
                  }
                ],
                "id": 9007,
                "name": "ParameterList",
                "src": "2184:19:28"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 9008,
                            "name": "Identifier",
                            "src": "2214:7:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "beneficiary",
                                  "referencedDeclaration": 8940,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct VestingScheme.Agreement storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8986,
                                          "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                          "value": "agreements"
                                        },
                                        "id": 9009,
                                        "name": "Identifier",
                                        "src": "2222:10:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9006,
                                          "type": "uint256",
                                          "value": "_agreementId"
                                        },
                                        "id": 9010,
                                        "name": "Identifier",
                                        "src": "2233:12:28"
                                      }
                                    ],
                                    "id": 9011,
                                    "name": "IndexAccess",
                                    "src": "2222:24:28"
                                  }
                                ],
                                "id": 9012,
                                "name": "MemberAccess",
                                "src": "2222:36:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 9013,
                                    "name": "Identifier",
                                    "src": "2262:3:28"
                                  }
                                ],
                                "id": 9014,
                                "name": "MemberAccess",
                                "src": "2262:10:28"
                              }
                            ],
                            "id": 9015,
                            "name": "BinaryOperation",
                            "src": "2222:50:28"
                          }
                        ],
                        "id": 9016,
                        "name": "FunctionCall",
                        "src": "2214:59:28"
                      }
                    ],
                    "id": 9017,
                    "name": "ExpressionStatement",
                    "src": "2214:59:28"
                  },
                  {
                    "id": 9018,
                    "name": "PlaceholderStatement",
                    "src": "2283:1:28"
                  }
                ],
                "id": 9019,
                "name": "Block",
                "src": "2204:87:28"
              }
            ],
            "id": 9020,
            "name": "ModifierDefinition",
            "src": "2160:131:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "VestingScheme",
              "payable": false,
              "scope": 9762,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 9021,
                "name": "ParameterList",
                "src": "2359:2:28"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 9022,
                "name": "ParameterList",
                "src": "2369:0:28"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 9023,
                "name": "Block",
                "src": "2369:2:28"
              }
            ],
            "id": 9024,
            "name": "FunctionDefinition",
            "src": "2337:34:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "setParameters",
              "payable": false,
              "scope": 9762,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteParams",
                      "scope": 9057,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9025,
                        "name": "ElementaryTypeName",
                        "src": "2645:7:28"
                      }
                    ],
                    "id": 9026,
                    "name": "VariableDeclaration",
                    "src": "2645:19:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 9057,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 2651,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 9027,
                        "name": "UserDefinedTypeName",
                        "src": "2674:16:28"
                      }
                    ],
                    "id": 9028,
                    "name": "VariableDeclaration",
                    "src": "2674:25:28"
                  }
                ],
                "id": 9029,
                "name": "ParameterList",
                "src": "2635:70:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 9057,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9030,
                        "name": "ElementaryTypeName",
                        "src": "2721:7:28"
                      }
                    ],
                    "id": 9031,
                    "name": "VariableDeclaration",
                    "src": "2721:7:28"
                  }
                ],
                "id": 9032,
                "name": "ParameterList",
                "src": "2720:9:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        9034
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "paramsHash",
                          "scope": 9057,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 9033,
                            "name": "ElementaryTypeName",
                            "src": "2744:7:28"
                          }
                        ],
                        "id": 9034,
                        "name": "VariableDeclaration",
                        "src": "2744:18:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_IntVoteInterface_$2651",
                                  "typeString": "contract IntVoteInterface"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9073,
                              "type": "function (bytes32,contract IntVoteInterface) pure returns (bytes32)",
                              "value": "getParametersHash"
                            },
                            "id": 9035,
                            "name": "Identifier",
                            "src": "2765:17:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9026,
                              "type": "bytes32",
                              "value": "_voteParams"
                            },
                            "id": 9036,
                            "name": "Identifier",
                            "src": "2783:11:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9028,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 9037,
                            "name": "Identifier",
                            "src": "2796:8:28"
                          }
                        ],
                        "id": 9038,
                        "name": "FunctionCall",
                        "src": "2765:40:28"
                      }
                    ],
                    "id": 9039,
                    "name": "VariableDeclarationStatement",
                    "src": "2744:61:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "voteParams",
                              "referencedDeclaration": 8969,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8982,
                                      "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 9040,
                                    "name": "Identifier",
                                    "src": "2815:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9034,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 9041,
                                    "name": "Identifier",
                                    "src": "2826:10:28"
                                  }
                                ],
                                "id": 9042,
                                "name": "IndexAccess",
                                "src": "2815:22:28"
                              }
                            ],
                            "id": 9043,
                            "name": "MemberAccess",
                            "src": "2815:33:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9026,
                              "type": "bytes32",
                              "value": "_voteParams"
                            },
                            "id": 9044,
                            "name": "Identifier",
                            "src": "2851:11:28"
                          }
                        ],
                        "id": 9045,
                        "name": "Assignment",
                        "src": "2815:47:28"
                      }
                    ],
                    "id": 9046,
                    "name": "ExpressionStatement",
                    "src": "2815:47:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract IntVoteInterface"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "intVote",
                              "referencedDeclaration": 8971,
                              "type": "contract IntVoteInterface"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8982,
                                      "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 9047,
                                    "name": "Identifier",
                                    "src": "2872:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9034,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 9048,
                                    "name": "Identifier",
                                    "src": "2883:10:28"
                                  }
                                ],
                                "id": 9049,
                                "name": "IndexAccess",
                                "src": "2872:22:28"
                              }
                            ],
                            "id": 9050,
                            "name": "MemberAccess",
                            "src": "2872:30:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9028,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 9051,
                            "name": "Identifier",
                            "src": "2905:8:28"
                          }
                        ],
                        "id": 9052,
                        "name": "Assignment",
                        "src": "2872:41:28"
                      }
                    ],
                    "id": 9053,
                    "name": "ExpressionStatement",
                    "src": "2872:41:28"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 9032
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 9034,
                          "type": "bytes32",
                          "value": "paramsHash"
                        },
                        "id": 9054,
                        "name": "Identifier",
                        "src": "2930:10:28"
                      }
                    ],
                    "id": 9055,
                    "name": "Return",
                    "src": "2923:17:28"
                  }
                ],
                "id": 9056,
                "name": "Block",
                "src": "2734:213:28"
              }
            ],
            "id": 9057,
            "name": "FunctionDefinition",
            "src": "2613:334:28"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getParametersHash",
              "payable": false,
              "scope": 9762,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteParams",
                      "scope": 9073,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9058,
                        "name": "ElementaryTypeName",
                        "src": "3201:7:28"
                      }
                    ],
                    "id": 9059,
                    "name": "VariableDeclaration",
                    "src": "3201:19:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 9073,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 2651,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 9060,
                        "name": "UserDefinedTypeName",
                        "src": "3230:16:28"
                      }
                    ],
                    "id": 9061,
                    "name": "VariableDeclaration",
                    "src": "3230:25:28"
                  }
                ],
                "id": 9062,
                "name": "ParameterList",
                "src": "3191:70:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 9073,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9063,
                        "name": "ElementaryTypeName",
                        "src": "3282:7:28"
                      }
                    ],
                    "id": 9064,
                    "name": "VariableDeclaration",
                    "src": "3282:7:28"
                  }
                ],
                "id": 9065,
                "name": "ParameterList",
                "src": "3281:9:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 9065
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_contract$_IntVoteInterface_$2651",
                                      "typeString": "contract IntVoteInterface"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10861,
                                  "type": "function () pure returns (bytes32)",
                                  "value": "keccak256"
                                },
                                "id": 9066,
                                "name": "Identifier",
                                "src": "3314:9:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9059,
                                  "type": "bytes32",
                                  "value": "_voteParams"
                                },
                                "id": 9067,
                                "name": "Identifier",
                                "src": "3324:11:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9061,
                                  "type": "contract IntVoteInterface",
                                  "value": "_intVote"
                                },
                                "id": 9068,
                                "name": "Identifier",
                                "src": "3337:8:28"
                              }
                            ],
                            "id": 9069,
                            "name": "FunctionCall",
                            "src": "3314:32:28"
                          }
                        ],
                        "id": 9070,
                        "name": "TupleExpression",
                        "src": "3313:34:28"
                      }
                    ],
                    "id": 9071,
                    "name": "Return",
                    "src": "3305:42:28"
                  }
                ],
                "id": 9072,
                "name": "Block",
                "src": "3295:59:28"
              }
            ],
            "id": 9073,
            "name": "FunctionDefinition",
            "src": "3165:189:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "proposeVestingAgreement",
              "payable": false,
              "scope": 9762,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9074,
                        "name": "ElementaryTypeName",
                        "src": "4188:7:28"
                      }
                    ],
                    "id": 9075,
                    "name": "VariableDeclaration",
                    "src": "4188:20:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_returnOnCancelAddress",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9076,
                        "name": "ElementaryTypeName",
                        "src": "4218:7:28"
                      }
                    ],
                    "id": 9077,
                    "name": "VariableDeclaration",
                    "src": "4218:30:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_startingBlock",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9078,
                        "name": "ElementaryTypeName",
                        "src": "4258:4:28"
                      }
                    ],
                    "id": 9079,
                    "name": "VariableDeclaration",
                    "src": "4258:19:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amountPerPeriod",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9080,
                        "name": "ElementaryTypeName",
                        "src": "4287:4:28"
                      }
                    ],
                    "id": 9081,
                    "name": "VariableDeclaration",
                    "src": "4287:21:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_periodLength",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9082,
                        "name": "ElementaryTypeName",
                        "src": "4318:4:28"
                      }
                    ],
                    "id": 9083,
                    "name": "VariableDeclaration",
                    "src": "4318:18:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_numOfAgreedPeriods",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9084,
                        "name": "ElementaryTypeName",
                        "src": "4346:4:28"
                      }
                    ],
                    "id": 9085,
                    "name": "VariableDeclaration",
                    "src": "4346:24:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_cliffInPeriods",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9086,
                        "name": "ElementaryTypeName",
                        "src": "4380:4:28"
                      }
                    ],
                    "id": 9087,
                    "name": "VariableDeclaration",
                    "src": "4380:20:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_signaturesReqToCancel",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9088,
                        "name": "ElementaryTypeName",
                        "src": "4410:4:28"
                      }
                    ],
                    "id": 9089,
                    "name": "VariableDeclaration",
                    "src": "4410:27:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_signersArray",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 9090,
                            "name": "ElementaryTypeName",
                            "src": "4447:7:28"
                          }
                        ],
                        "id": 9091,
                        "name": "ArrayTypeName",
                        "src": "4447:9:28"
                      }
                    ],
                    "id": 9092,
                    "name": "VariableDeclaration",
                    "src": "4447:23:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3065,
                          "type": "contract Avatar"
                        },
                        "id": 9093,
                        "name": "UserDefinedTypeName",
                        "src": "4480:6:28"
                      }
                    ],
                    "id": 9094,
                    "name": "VariableDeclaration",
                    "src": "4480:14:28"
                  }
                ],
                "id": 9095,
                "name": "ParameterList",
                "src": "4178:322:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 9264,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9096,
                        "name": "ElementaryTypeName",
                        "src": "4526:7:28"
                      }
                    ],
                    "id": 9097,
                    "name": "VariableDeclaration",
                    "src": "4526:7:28"
                  }
                ],
                "id": 9098,
                "name": "ParameterList",
                "src": "4525:9:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        9100
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "params",
                          "scope": 9264,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct VestingScheme.Parameters memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Parameters",
                              "referencedDeclaration": 8972,
                              "type": "struct VestingScheme.Parameters storage pointer"
                            },
                            "id": 9099,
                            "name": "UserDefinedTypeName",
                            "src": "4573:10:28"
                          }
                        ],
                        "id": 9100,
                        "name": "VariableDeclaration",
                        "src": "4573:24:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8982,
                              "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
                              "value": "parameters"
                            },
                            "id": 9101,
                            "name": "Identifier",
                            "src": "4600:10:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    8464
                                  ],
                                  "referencedDeclaration": 8464,
                                  "type": "function (contract Avatar) view returns (bytes32)",
                                  "value": "getParametersFromController"
                                },
                                "id": 9102,
                                "name": "Identifier",
                                "src": "4611:27:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9094,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 9103,
                                "name": "Identifier",
                                "src": "4639:7:28"
                              }
                            ],
                            "id": 9104,
                            "name": "FunctionCall",
                            "src": "4611:36:28"
                          }
                        ],
                        "id": 9105,
                        "name": "IndexAccess",
                        "src": "4600:48:28"
                      }
                    ],
                    "id": 9106,
                    "name": "VariableDeclarationStatement",
                    "src": "4573:75:28"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        9108
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposalId",
                          "scope": 9264,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 9107,
                            "name": "ElementaryTypeName",
                            "src": "4658:7:28"
                          }
                        ],
                        "id": 9108,
                        "name": "VariableDeclaration",
                        "src": "4658:18:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ExecutableInterface_$6617",
                                  "typeString": "contract ExecutableInterface"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "propose",
                              "referencedDeclaration": 2563,
                              "type": "function (uint256,bytes32,address,contract ExecutableInterface) external returns (bytes32)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 8971,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9100,
                                      "type": "struct VestingScheme.Parameters memory",
                                      "value": "params"
                                    },
                                    "id": 9109,
                                    "name": "Identifier",
                                    "src": "4679:6:28"
                                  }
                                ],
                                "id": 9110,
                                "name": "MemberAccess",
                                "src": "4679:14:28"
                              }
                            ],
                            "id": 9111,
                            "name": "MemberAccess",
                            "src": "4679:22:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "32",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "2"
                            },
                            "id": 9112,
                            "name": "Literal",
                            "src": "4702:1:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "voteParams",
                              "referencedDeclaration": 8969,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9100,
                                  "type": "struct VestingScheme.Parameters memory",
                                  "value": "params"
                                },
                                "id": 9113,
                                "name": "Identifier",
                                "src": "4705:6:28"
                              }
                            ],
                            "id": 9114,
                            "name": "MemberAccess",
                            "src": "4705:17:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9094,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 9115,
                            "name": "Identifier",
                            "src": "4724:7:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract ExecutableInterface",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_VestingScheme_$9762",
                                      "typeString": "contract VestingScheme"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6617,
                                  "type": "type(contract ExecutableInterface)",
                                  "value": "ExecutableInterface"
                                },
                                "id": 9116,
                                "name": "Identifier",
                                "src": "4733:19:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10958,
                                  "type": "contract VestingScheme",
                                  "value": "this"
                                },
                                "id": 9117,
                                "name": "Identifier",
                                "src": "4753:4:28"
                              }
                            ],
                            "id": 9118,
                            "name": "FunctionCall",
                            "src": "4733:25:28"
                          }
                        ],
                        "id": 9119,
                        "name": "FunctionCall",
                        "src": "4679:80:28"
                      }
                    ],
                    "id": 9120,
                    "name": "VariableDeclarationStatement",
                    "src": "4658:101:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10858,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 9121,
                            "name": "Identifier",
                            "src": "4769:6:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9089,
                                  "type": "uint256",
                                  "value": "_signaturesReqToCancel"
                                },
                                "id": 9122,
                                "name": "Identifier",
                                "src": "4776:22:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9092,
                                      "type": "address[] calldata",
                                      "value": "_signersArray"
                                    },
                                    "id": 9123,
                                    "name": "Identifier",
                                    "src": "4802:13:28"
                                  }
                                ],
                                "id": 9124,
                                "name": "MemberAccess",
                                "src": "4802:20:28"
                              }
                            ],
                            "id": 9125,
                            "name": "BinaryOperation",
                            "src": "4776:46:28"
                          }
                        ],
                        "id": 9126,
                        "name": "FunctionCall",
                        "src": "4769:54:28"
                      }
                    ],
                    "id": 9127,
                    "name": "ExpressionStatement",
                    "src": "4769:54:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10858,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 9128,
                            "name": "Identifier",
                            "src": "4833:6:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9083,
                                  "type": "uint256",
                                  "value": "_periodLength"
                                },
                                "id": 9129,
                                "name": "Identifier",
                                "src": "4840:13:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 9130,
                                "name": "Literal",
                                "src": "4856:1:28"
                              }
                            ],
                            "id": 9131,
                            "name": "BinaryOperation",
                            "src": "4840:17:28"
                          }
                        ],
                        "id": 9132,
                        "name": "FunctionCall",
                        "src": "4833:25:28"
                      }
                    ],
                    "id": 9133,
                    "name": "ExpressionStatement",
                    "src": "4833:25:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            9135
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "name": "cnt",
                              "scope": 9264,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 9134,
                                "name": "ElementaryTypeName",
                                "src": "4911:4:28"
                              }
                            ],
                            "id": 9135,
                            "name": "VariableDeclaration",
                            "src": "4911:8:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9136,
                            "name": "Literal",
                            "src": "4922:1:28"
                          }
                        ],
                        "id": 9137,
                        "name": "VariableDeclarationStatement",
                        "src": "4911:12:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9135,
                              "type": "uint256",
                              "value": "cnt"
                            },
                            "id": 9138,
                            "name": "Identifier",
                            "src": "4925:3:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9092,
                                  "type": "address[] calldata",
                                  "value": "_signersArray"
                                },
                                "id": 9139,
                                "name": "Identifier",
                                "src": "4929:13:28"
                              }
                            ],
                            "id": 9140,
                            "name": "MemberAccess",
                            "src": "4929:20:28"
                          }
                        ],
                        "id": 9141,
                        "name": "BinaryOperation",
                        "src": "4925:24:28"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9135,
                                  "type": "uint256",
                                  "value": "cnt"
                                },
                                "id": 9142,
                                "name": "Identifier",
                                "src": "4951:3:28"
                              }
                            ],
                            "id": 9143,
                            "name": "UnaryOperation",
                            "src": "4951:5:28"
                          }
                        ],
                        "id": 9144,
                        "name": "ExpressionStatement",
                        "src": "4951:5:28"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "signers",
                                          "referencedDeclaration": 8962,
                                          "type": "mapping(address => bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct VestingScheme.Agreement storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8978,
                                                      "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                                      "value": "organizationsData"
                                                    },
                                                    "id": 9145,
                                                    "name": "Identifier",
                                                    "src": "4972:17:28"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 9094,
                                                      "type": "contract Avatar",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 9146,
                                                    "name": "Identifier",
                                                    "src": "4990:7:28"
                                                  }
                                                ],
                                                "id": 9148,
                                                "name": "IndexAccess",
                                                "src": "4972:26:28"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 9108,
                                                  "type": "bytes32",
                                                  "value": "proposalId"
                                                },
                                                "id": 9147,
                                                "name": "Identifier",
                                                "src": "4999:10:28"
                                              }
                                            ],
                                            "id": 9149,
                                            "name": "IndexAccess",
                                            "src": "4972:38:28"
                                          }
                                        ],
                                        "id": 9150,
                                        "name": "MemberAccess",
                                        "src": "4972:46:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9092,
                                              "type": "address[] calldata",
                                              "value": "_signersArray"
                                            },
                                            "id": 9151,
                                            "name": "Identifier",
                                            "src": "5019:13:28"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9135,
                                              "type": "uint256",
                                              "value": "cnt"
                                            },
                                            "id": 9152,
                                            "name": "Identifier",
                                            "src": "5033:3:28"
                                          }
                                        ],
                                        "id": 9153,
                                        "name": "IndexAccess",
                                        "src": "5019:18:28"
                                      }
                                    ],
                                    "id": 9154,
                                    "name": "IndexAccess",
                                    "src": "4972:66:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "74727565",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "bool",
                                      "type": "bool",
                                      "value": "true"
                                    },
                                    "id": 9155,
                                    "name": "Literal",
                                    "src": "5041:4:28"
                                  }
                                ],
                                "id": 9156,
                                "name": "Assignment",
                                "src": "4972:73:28"
                              }
                            ],
                            "id": 9157,
                            "name": "ExpressionStatement",
                            "src": "4972:73:28"
                          }
                        ],
                        "id": 9158,
                        "name": "Block",
                        "src": "4958:98:28"
                      }
                    ],
                    "id": 9159,
                    "name": "ForStatement",
                    "src": "4906:150:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract StandardToken"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "token",
                              "referencedDeclaration": 8938,
                              "type": "contract StandardToken"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8978,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 9160,
                                        "name": "Identifier",
                                        "src": "5094:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9161,
                                        "name": "Identifier",
                                        "src": "5112:7:28"
                                      }
                                    ],
                                    "id": 9163,
                                    "name": "IndexAccess",
                                    "src": "5094:26:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9108,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 9162,
                                    "name": "Identifier",
                                    "src": "5121:10:28"
                                  }
                                ],
                                "id": 9164,
                                "name": "IndexAccess",
                                "src": "5094:38:28"
                              }
                            ],
                            "id": 9165,
                            "name": "MemberAccess",
                            "src": "5094:44:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract DAOToken",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeToken",
                                  "referencedDeclaration": 2796,
                                  "type": "function () view external returns (contract DAOToken)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 9166,
                                        "name": "Identifier",
                                        "src": "5141:6:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9167,
                                        "name": "Identifier",
                                        "src": "5148:7:28"
                                      }
                                    ],
                                    "id": 9168,
                                    "name": "FunctionCall",
                                    "src": "5141:15:28"
                                  }
                                ],
                                "id": 9169,
                                "name": "MemberAccess",
                                "src": "5141:27:28"
                              }
                            ],
                            "id": 9170,
                            "name": "FunctionCall",
                            "src": "5141:29:28"
                          }
                        ],
                        "id": 9171,
                        "name": "Assignment",
                        "src": "5094:76:28"
                      }
                    ],
                    "id": 9172,
                    "name": "ExpressionStatement",
                    "src": "5094:76:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "beneficiary",
                              "referencedDeclaration": 8940,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8978,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 9173,
                                        "name": "Identifier",
                                        "src": "5180:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9174,
                                        "name": "Identifier",
                                        "src": "5198:7:28"
                                      }
                                    ],
                                    "id": 9176,
                                    "name": "IndexAccess",
                                    "src": "5180:26:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9108,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 9175,
                                    "name": "Identifier",
                                    "src": "5207:10:28"
                                  }
                                ],
                                "id": 9177,
                                "name": "IndexAccess",
                                "src": "5180:38:28"
                              }
                            ],
                            "id": 9178,
                            "name": "MemberAccess",
                            "src": "5180:50:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9075,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 9179,
                            "name": "Identifier",
                            "src": "5233:12:28"
                          }
                        ],
                        "id": 9180,
                        "name": "Assignment",
                        "src": "5180:65:28"
                      }
                    ],
                    "id": 9181,
                    "name": "ExpressionStatement",
                    "src": "5180:65:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "returnOnCancelAddress",
                              "referencedDeclaration": 8942,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8978,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 9182,
                                        "name": "Identifier",
                                        "src": "5255:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9183,
                                        "name": "Identifier",
                                        "src": "5273:7:28"
                                      }
                                    ],
                                    "id": 9185,
                                    "name": "IndexAccess",
                                    "src": "5255:26:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9108,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 9184,
                                    "name": "Identifier",
                                    "src": "5282:10:28"
                                  }
                                ],
                                "id": 9186,
                                "name": "IndexAccess",
                                "src": "5255:38:28"
                              }
                            ],
                            "id": 9187,
                            "name": "MemberAccess",
                            "src": "5255:60:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9077,
                              "type": "address",
                              "value": "_returnOnCancelAddress"
                            },
                            "id": 9188,
                            "name": "Identifier",
                            "src": "5318:22:28"
                          }
                        ],
                        "id": 9189,
                        "name": "Assignment",
                        "src": "5255:85:28"
                      }
                    ],
                    "id": 9190,
                    "name": "ExpressionStatement",
                    "src": "5255:85:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "startingBlock",
                              "referencedDeclaration": 8944,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8978,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 9191,
                                        "name": "Identifier",
                                        "src": "5350:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9192,
                                        "name": "Identifier",
                                        "src": "5368:7:28"
                                      }
                                    ],
                                    "id": 9194,
                                    "name": "IndexAccess",
                                    "src": "5350:26:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9108,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 9193,
                                    "name": "Identifier",
                                    "src": "5377:10:28"
                                  }
                                ],
                                "id": 9195,
                                "name": "IndexAccess",
                                "src": "5350:38:28"
                              }
                            ],
                            "id": 9196,
                            "name": "MemberAccess",
                            "src": "5350:52:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9079,
                              "type": "uint256",
                              "value": "_startingBlock"
                            },
                            "id": 9197,
                            "name": "Identifier",
                            "src": "5405:14:28"
                          }
                        ],
                        "id": 9198,
                        "name": "Assignment",
                        "src": "5350:69:28"
                      }
                    ],
                    "id": 9199,
                    "name": "ExpressionStatement",
                    "src": "5350:69:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "amountPerPeriod",
                              "referencedDeclaration": 8946,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8978,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 9200,
                                        "name": "Identifier",
                                        "src": "5429:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9201,
                                        "name": "Identifier",
                                        "src": "5447:7:28"
                                      }
                                    ],
                                    "id": 9203,
                                    "name": "IndexAccess",
                                    "src": "5429:26:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9108,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 9202,
                                    "name": "Identifier",
                                    "src": "5456:10:28"
                                  }
                                ],
                                "id": 9204,
                                "name": "IndexAccess",
                                "src": "5429:38:28"
                              }
                            ],
                            "id": 9205,
                            "name": "MemberAccess",
                            "src": "5429:54:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9081,
                              "type": "uint256",
                              "value": "_amountPerPeriod"
                            },
                            "id": 9206,
                            "name": "Identifier",
                            "src": "5486:16:28"
                          }
                        ],
                        "id": 9207,
                        "name": "Assignment",
                        "src": "5429:73:28"
                      }
                    ],
                    "id": 9208,
                    "name": "ExpressionStatement",
                    "src": "5429:73:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "periodLength",
                              "referencedDeclaration": 8948,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8978,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 9209,
                                        "name": "Identifier",
                                        "src": "5512:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9210,
                                        "name": "Identifier",
                                        "src": "5530:7:28"
                                      }
                                    ],
                                    "id": 9212,
                                    "name": "IndexAccess",
                                    "src": "5512:26:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9108,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 9211,
                                    "name": "Identifier",
                                    "src": "5539:10:28"
                                  }
                                ],
                                "id": 9213,
                                "name": "IndexAccess",
                                "src": "5512:38:28"
                              }
                            ],
                            "id": 9214,
                            "name": "MemberAccess",
                            "src": "5512:51:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9083,
                              "type": "uint256",
                              "value": "_periodLength"
                            },
                            "id": 9215,
                            "name": "Identifier",
                            "src": "5566:13:28"
                          }
                        ],
                        "id": 9216,
                        "name": "Assignment",
                        "src": "5512:67:28"
                      }
                    ],
                    "id": 9217,
                    "name": "ExpressionStatement",
                    "src": "5512:67:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "numOfAgreedPeriods",
                              "referencedDeclaration": 8950,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8978,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 9218,
                                        "name": "Identifier",
                                        "src": "5589:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9219,
                                        "name": "Identifier",
                                        "src": "5607:7:28"
                                      }
                                    ],
                                    "id": 9221,
                                    "name": "IndexAccess",
                                    "src": "5589:26:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9108,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 9220,
                                    "name": "Identifier",
                                    "src": "5616:10:28"
                                  }
                                ],
                                "id": 9222,
                                "name": "IndexAccess",
                                "src": "5589:38:28"
                              }
                            ],
                            "id": 9223,
                            "name": "MemberAccess",
                            "src": "5589:57:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9085,
                              "type": "uint256",
                              "value": "_numOfAgreedPeriods"
                            },
                            "id": 9224,
                            "name": "Identifier",
                            "src": "5649:19:28"
                          }
                        ],
                        "id": 9225,
                        "name": "Assignment",
                        "src": "5589:79:28"
                      }
                    ],
                    "id": 9226,
                    "name": "ExpressionStatement",
                    "src": "5589:79:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "cliffInPeriods",
                              "referencedDeclaration": 8952,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8978,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 9227,
                                        "name": "Identifier",
                                        "src": "5678:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9228,
                                        "name": "Identifier",
                                        "src": "5696:7:28"
                                      }
                                    ],
                                    "id": 9230,
                                    "name": "IndexAccess",
                                    "src": "5678:26:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9108,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 9229,
                                    "name": "Identifier",
                                    "src": "5705:10:28"
                                  }
                                ],
                                "id": 9231,
                                "name": "IndexAccess",
                                "src": "5678:38:28"
                              }
                            ],
                            "id": 9232,
                            "name": "MemberAccess",
                            "src": "5678:53:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9087,
                              "type": "uint256",
                              "value": "_cliffInPeriods"
                            },
                            "id": 9233,
                            "name": "Identifier",
                            "src": "5734:15:28"
                          }
                        ],
                        "id": 9234,
                        "name": "Assignment",
                        "src": "5678:71:28"
                      }
                    ],
                    "id": 9235,
                    "name": "ExpressionStatement",
                    "src": "5678:71:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "signaturesReqToCancel",
                              "referencedDeclaration": 8954,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8978,
                                          "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                          "value": "organizationsData"
                                        },
                                        "id": 9236,
                                        "name": "Identifier",
                                        "src": "5759:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9094,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 9237,
                                        "name": "Identifier",
                                        "src": "5777:7:28"
                                      }
                                    ],
                                    "id": 9239,
                                    "name": "IndexAccess",
                                    "src": "5759:26:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9108,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 9238,
                                    "name": "Identifier",
                                    "src": "5786:10:28"
                                  }
                                ],
                                "id": 9240,
                                "name": "IndexAccess",
                                "src": "5759:38:28"
                              }
                            ],
                            "id": 9241,
                            "name": "MemberAccess",
                            "src": "5759:60:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9089,
                              "type": "uint256",
                              "value": "_signaturesReqToCancel"
                            },
                            "id": 9242,
                            "name": "Identifier",
                            "src": "5822:22:28"
                          }
                        ],
                        "id": 9243,
                        "name": "Assignment",
                        "src": "5759:85:28"
                      }
                    ],
                    "id": 9244,
                    "name": "ExpressionStatement",
                    "src": "5759:85:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "ownerVote",
                              "referencedDeclaration": 2590,
                              "type": "function (bytes32,uint256,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 8971,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9100,
                                      "type": "struct VestingScheme.Parameters memory",
                                      "value": "params"
                                    },
                                    "id": 9245,
                                    "name": "Identifier",
                                    "src": "5855:6:28"
                                  }
                                ],
                                "id": 9248,
                                "name": "MemberAccess",
                                "src": "5855:14:28"
                              }
                            ],
                            "id": 9249,
                            "name": "MemberAccess",
                            "src": "5855:24:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9108,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 9250,
                            "name": "Identifier",
                            "src": "5880:10:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 9251,
                            "name": "Literal",
                            "src": "5892:1:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 9252,
                                "name": "Identifier",
                                "src": "5895:3:28"
                              }
                            ],
                            "id": 9253,
                            "name": "MemberAccess",
                            "src": "5895:10:28"
                          }
                        ],
                        "id": 9254,
                        "name": "FunctionCall",
                        "src": "5855:51:28"
                      }
                    ],
                    "id": 9255,
                    "name": "ExpressionStatement",
                    "src": "5855:51:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8904,
                              "type": "function (address,bytes32)",
                              "value": "LogAgreementProposal"
                            },
                            "id": 9256,
                            "name": "Identifier",
                            "src": "5989:20:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9094,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 9257,
                            "name": "Identifier",
                            "src": "6010:7:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9108,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 9258,
                            "name": "Identifier",
                            "src": "6019:10:28"
                          }
                        ],
                        "id": 9259,
                        "name": "FunctionCall",
                        "src": "5989:41:28"
                      }
                    ],
                    "id": 9260,
                    "name": "ExpressionStatement",
                    "src": "5989:41:28"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 9098
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 9108,
                          "type": "bytes32",
                          "value": "proposalId"
                        },
                        "id": 9261,
                        "name": "Identifier",
                        "src": "6047:10:28"
                      }
                    ],
                    "id": 9262,
                    "name": "Return",
                    "src": "6040:17:28"
                  }
                ],
                "id": 9263,
                "name": "Block",
                "src": "4539:1525:28"
              }
            ],
            "id": 9264,
            "name": "FunctionDefinition",
            "src": "4146:1918:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "execute",
              "payable": false,
              "scope": 9762,
              "stateMutability": "nonpayable",
              "superFunction": 6616,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_proposalId",
                      "scope": 9360,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 9265,
                        "name": "ElementaryTypeName",
                        "src": "6461:7:28"
                      }
                    ],
                    "id": 9266,
                    "name": "VariableDeclaration",
                    "src": "6461:19:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 9360,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9267,
                        "name": "ElementaryTypeName",
                        "src": "6482:7:28"
                      }
                    ],
                    "id": 9268,
                    "name": "VariableDeclaration",
                    "src": "6482:15:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_param",
                      "scope": 9360,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int",
                          "type": "int256"
                        },
                        "id": 9269,
                        "name": "ElementaryTypeName",
                        "src": "6499:3:28"
                      }
                    ],
                    "id": 9270,
                    "name": "VariableDeclaration",
                    "src": "6499:10:28"
                  }
                ],
                "id": 9271,
                "name": "ParameterList",
                "src": "6460:50:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 9360,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 9272,
                        "name": "ElementaryTypeName",
                        "src": "6526:4:28"
                      }
                    ],
                    "id": 9273,
                    "name": "VariableDeclaration",
                    "src": "6526:4:28"
                  }
                ],
                "id": 9274,
                "name": "ParameterList",
                "src": "6525:6:28"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 9275,
                            "name": "Identifier",
                            "src": "6600:7:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 8971,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct VestingScheme.Parameters storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8982,
                                          "type": "mapping(bytes32 => struct VestingScheme.Parameters storage ref)",
                                          "value": "parameters"
                                        },
                                        "id": 9276,
                                        "name": "Identifier",
                                        "src": "6608:10:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "bytes32",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                8464
                                              ],
                                              "referencedDeclaration": 8464,
                                              "type": "function (contract Avatar) view returns (bytes32)",
                                              "value": "getParametersFromController"
                                            },
                                            "id": 9277,
                                            "name": "Identifier",
                                            "src": "6619:27:28"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "contract Avatar",
                                              "type_conversion": true
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 3065,
                                                  "type": "type(contract Avatar)",
                                                  "value": "Avatar"
                                                },
                                                "id": 9278,
                                                "name": "Identifier",
                                                "src": "6647:6:28"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 9268,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 9279,
                                                "name": "Identifier",
                                                "src": "6654:7:28"
                                              }
                                            ],
                                            "id": 9280,
                                            "name": "FunctionCall",
                                            "src": "6647:15:28"
                                          }
                                        ],
                                        "id": 9281,
                                        "name": "FunctionCall",
                                        "src": "6619:44:28"
                                      }
                                    ],
                                    "id": 9282,
                                    "name": "IndexAccess",
                                    "src": "6608:56:28"
                                  }
                                ],
                                "id": 9283,
                                "name": "MemberAccess",
                                "src": "6608:64:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 9284,
                                    "name": "Identifier",
                                    "src": "6676:3:28"
                                  }
                                ],
                                "id": 9285,
                                "name": "MemberAccess",
                                "src": "6676:10:28"
                              }
                            ],
                            "id": 9286,
                            "name": "BinaryOperation",
                            "src": "6608:78:28"
                          }
                        ],
                        "id": 9287,
                        "name": "FunctionCall",
                        "src": "6600:87:28"
                      }
                    ],
                    "id": 9288,
                    "name": "ExpressionStatement",
                    "src": "6600:87:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8912,
                              "type": "function (address,bytes32,int256)",
                              "value": "LogExecutaion"
                            },
                            "id": 9289,
                            "name": "Identifier",
                            "src": "6724:13:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9268,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 9290,
                            "name": "Identifier",
                            "src": "6738:7:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9266,
                              "type": "bytes32",
                              "value": "_proposalId"
                            },
                            "id": 9291,
                            "name": "Identifier",
                            "src": "6747:11:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9270,
                              "type": "int256",
                              "value": "_param"
                            },
                            "id": 9292,
                            "name": "Identifier",
                            "src": "6760:6:28"
                          }
                        ],
                        "id": 9293,
                        "name": "FunctionCall",
                        "src": "6724:43:28"
                      }
                    ],
                    "id": 9294,
                    "name": "ExpressionStatement",
                    "src": "6724:43:28"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        9296
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposedAgreement",
                          "scope": 9360,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct VestingScheme.Agreement memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 8967,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 9295,
                            "name": "UserDefinedTypeName",
                            "src": "6778:9:28"
                          }
                        ],
                        "id": 9296,
                        "name": "VariableDeclaration",
                        "src": "6778:34:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8978,
                                  "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                  "value": "organizationsData"
                                },
                                "id": 9297,
                                "name": "Identifier",
                                "src": "6815:17:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9268,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 9298,
                                "name": "Identifier",
                                "src": "6833:7:28"
                              }
                            ],
                            "id": 9299,
                            "name": "IndexAccess",
                            "src": "6815:26:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9266,
                              "type": "bytes32",
                              "value": "_proposalId"
                            },
                            "id": 9300,
                            "name": "Identifier",
                            "src": "6842:11:28"
                          }
                        ],
                        "id": 9301,
                        "name": "IndexAccess",
                        "src": "6815:39:28"
                      }
                    ],
                    "id": 9302,
                    "name": "VariableDeclarationStatement",
                    "src": "6778:76:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct VestingScheme.Agreement storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(bytes32 => struct VestingScheme.Agreement storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8978,
                                      "type": "mapping(address => mapping(bytes32 => struct VestingScheme.Agreement storage ref))",
                                      "value": "organizationsData"
                                    },
                                    "id": 9303,
                                    "name": "Identifier",
                                    "src": "6871:17:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9268,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 9304,
                                    "name": "Identifier",
                                    "src": "6889:7:28"
                                  }
                                ],
                                "id": 9305,
                                "name": "IndexAccess",
                                "src": "6871:26:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9266,
                                  "type": "bytes32",
                                  "value": "_proposalId"
                                },
                                "id": 9306,
                                "name": "Identifier",
                                "src": "6898:11:28"
                              }
                            ],
                            "id": 9307,
                            "name": "IndexAccess",
                            "src": "6871:39:28"
                          }
                        ],
                        "id": 9308,
                        "name": "UnaryOperation",
                        "src": "6864:46:28"
                      }
                    ],
                    "id": 9309,
                    "name": "ExpressionStatement",
                    "src": "6864:46:28"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9270,
                              "type": "int256",
                              "value": "_param"
                            },
                            "id": 9310,
                            "name": "Identifier",
                            "src": "6966:6:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 9311,
                            "name": "Literal",
                            "src": "6976:1:28"
                          }
                        ],
                        "id": 9312,
                        "name": "BinaryOperation",
                        "src": "6966:11:28"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                9314
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "name": "controller",
                                  "scope": 9360,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "contract ControllerInterface",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "ControllerInterface",
                                      "referencedDeclaration": 4364,
                                      "type": "contract ControllerInterface"
                                    },
                                    "id": 9313,
                                    "name": "UserDefinedTypeName",
                                    "src": "7074:19:28"
                                  }
                                ],
                                "id": 9314,
                                "name": "VariableDeclaration",
                                "src": "7074:30:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract ControllerInterface",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4364,
                                      "type": "type(contract ControllerInterface)",
                                      "value": "ControllerInterface"
                                    },
                                    "id": 9315,
                                    "name": "Identifier",
                                    "src": "7107:19:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "owner",
                                          "referencedDeclaration": 10249,
                                          "type": "function () view external returns (address)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "contract Avatar",
                                              "type_conversion": true
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 3065,
                                                  "type": "type(contract Avatar)",
                                                  "value": "Avatar"
                                                },
                                                "id": 9316,
                                                "name": "Identifier",
                                                "src": "7127:6:28"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 9268,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 9317,
                                                "name": "Identifier",
                                                "src": "7134:7:28"
                                              }
                                            ],
                                            "id": 9318,
                                            "name": "FunctionCall",
                                            "src": "7127:15:28"
                                          }
                                        ],
                                        "id": 9319,
                                        "name": "MemberAccess",
                                        "src": "7127:21:28"
                                      }
                                    ],
                                    "id": 9320,
                                    "name": "FunctionCall",
                                    "src": "7127:23:28"
                                  }
                                ],
                                "id": 9321,
                                "name": "FunctionCall",
                                "src": "7107:44:28"
                              }
                            ],
                            "id": 9322,
                            "name": "VariableDeclarationStatement",
                            "src": "7074:77:28"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                9324
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "name": "tokensToMint",
                                  "scope": 9360,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint",
                                      "type": "uint256"
                                    },
                                    "id": 9323,
                                    "name": "ElementaryTypeName",
                                    "src": "7165:4:28"
                                  }
                                ],
                                "id": 9324,
                                "name": "VariableDeclaration",
                                "src": "7165:17:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "mul",
                                      "referencedDeclaration": 10158,
                                      "type": "function (uint256,uint256) pure returns (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "amountPerPeriod",
                                          "referencedDeclaration": 8946,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9296,
                                              "type": "struct VestingScheme.Agreement memory",
                                              "value": "proposedAgreement"
                                            },
                                            "id": 9325,
                                            "name": "Identifier",
                                            "src": "7185:17:28"
                                          }
                                        ],
                                        "id": 9326,
                                        "name": "MemberAccess",
                                        "src": "7185:33:28"
                                      }
                                    ],
                                    "id": 9327,
                                    "name": "MemberAccess",
                                    "src": "7185:37:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "numOfAgreedPeriods",
                                      "referencedDeclaration": 8950,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9296,
                                          "type": "struct VestingScheme.Agreement memory",
                                          "value": "proposedAgreement"
                                        },
                                        "id": 9328,
                                        "name": "Identifier",
                                        "src": "7223:17:28"
                                      }
                                    ],
                                    "id": 9329,
                                    "name": "MemberAccess",
                                    "src": "7223:36:28"
                                  }
                                ],
                                "id": 9330,
                                "name": "FunctionCall",
                                "src": "7185:75:28"
                              }
                            ],
                            "id": 9331,
                            "name": "VariableDeclarationStatement",
                            "src": "7165:95:28"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bool",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_contract$_VestingScheme_$9762",
                                          "typeString": "contract VestingScheme"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "mintTokens",
                                      "referencedDeclaration": 4187,
                                      "type": "function (uint256,address,address) external returns (bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9314,
                                          "type": "contract ControllerInterface",
                                          "value": "controller"
                                        },
                                        "id": 9332,
                                        "name": "Identifier",
                                        "src": "7274:10:28"
                                      }
                                    ],
                                    "id": 9334,
                                    "name": "MemberAccess",
                                    "src": "7274:21:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9324,
                                      "type": "uint256",
                                      "value": "tokensToMint"
                                    },
                                    "id": 9335,
                                    "name": "Identifier",
                                    "src": "7296:12:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10958,
                                      "type": "contract VestingScheme",
                                      "value": "this"
                                    },
                                    "id": 9336,
                                    "name": "Identifier",
                                    "src": "7310:4:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9268,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 9337,
                                    "name": "Identifier",
                                    "src": "7315:7:28"
                                  }
                                ],
                                "id": 9338,
                                "name": "FunctionCall",
                                "src": "7274:49:28"
                              }
                            ],
                            "id": 9339,
                            "name": "ExpressionStatement",
                            "src": "7274:49:28"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct VestingScheme.Agreement storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8986,
                                          "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                          "value": "agreements"
                                        },
                                        "id": 9340,
                                        "name": "Identifier",
                                        "src": "7337:10:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8988,
                                          "type": "uint256",
                                          "value": "agreementsCounter"
                                        },
                                        "id": 9341,
                                        "name": "Identifier",
                                        "src": "7348:17:28"
                                      }
                                    ],
                                    "id": 9342,
                                    "name": "IndexAccess",
                                    "src": "7337:29:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9296,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "proposedAgreement"
                                    },
                                    "id": 9343,
                                    "name": "Identifier",
                                    "src": "7369:17:28"
                                  }
                                ],
                                "id": 9344,
                                "name": "Assignment",
                                "src": "7337:49:28"
                              }
                            ],
                            "id": 9345,
                            "name": "ExpressionStatement",
                            "src": "7337:49:28"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "++",
                                  "prefix": false,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9346,
                                    "name": "Identifier",
                                    "src": "7400:17:28"
                                  }
                                ],
                                "id": 9347,
                                "name": "UnaryOperation",
                                "src": "7400:19:28"
                              }
                            ],
                            "id": 9348,
                            "name": "ExpressionStatement",
                            "src": "7400:19:28"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8916,
                                      "type": "function (uint256)",
                                      "value": "NewVestedAgreement"
                                    },
                                    "id": 9349,
                                    "name": "Identifier",
                                    "src": "7467:18:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8988,
                                          "type": "uint256",
                                          "value": "agreementsCounter"
                                        },
                                        "id": 9350,
                                        "name": "Identifier",
                                        "src": "7486:17:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 9351,
                                        "name": "Literal",
                                        "src": "7504:1:28"
                                      }
                                    ],
                                    "id": 9352,
                                    "name": "BinaryOperation",
                                    "src": "7486:19:28"
                                  }
                                ],
                                "id": 9353,
                                "name": "FunctionCall",
                                "src": "7467:39:28"
                              }
                            ],
                            "id": 9354,
                            "name": "ExpressionStatement",
                            "src": "7467:39:28"
                          }
                        ],
                        "id": 9355,
                        "name": "Block",
                        "src": "6979:537:28"
                      }
                    ],
                    "id": 9356,
                    "name": "IfStatement",
                    "src": "6962:554:28"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 9274
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 9357,
                        "name": "Literal",
                        "src": "7532:4:28"
                      }
                    ],
                    "id": 9358,
                    "name": "Return",
                    "src": "7525:11:28"
                  }
                ],
                "id": 9359,
                "name": "Block",
                "src": "6532:1011:28"
              }
            ],
            "id": 9360,
            "name": "FunctionDefinition",
            "src": "6444:1099:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "createVestedAgreement",
              "payable": false,
              "scope": 9762,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_token",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10855,
                          "type": "contract StandardToken"
                        },
                        "id": 9361,
                        "name": "UserDefinedTypeName",
                        "src": "8366:13:28"
                      }
                    ],
                    "id": 9362,
                    "name": "VariableDeclaration",
                    "src": "8366:20:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9363,
                        "name": "ElementaryTypeName",
                        "src": "8396:7:28"
                      }
                    ],
                    "id": 9364,
                    "name": "VariableDeclaration",
                    "src": "8396:20:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_returnOnCancelAddress",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9365,
                        "name": "ElementaryTypeName",
                        "src": "8426:7:28"
                      }
                    ],
                    "id": 9366,
                    "name": "VariableDeclaration",
                    "src": "8426:30:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_startingBlock",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9367,
                        "name": "ElementaryTypeName",
                        "src": "8466:4:28"
                      }
                    ],
                    "id": 9368,
                    "name": "VariableDeclaration",
                    "src": "8466:19:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amountPerPeriod",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9369,
                        "name": "ElementaryTypeName",
                        "src": "8495:4:28"
                      }
                    ],
                    "id": 9370,
                    "name": "VariableDeclaration",
                    "src": "8495:21:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_periodLength",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9371,
                        "name": "ElementaryTypeName",
                        "src": "8526:4:28"
                      }
                    ],
                    "id": 9372,
                    "name": "VariableDeclaration",
                    "src": "8526:18:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_numOfAgreedPeriods",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9373,
                        "name": "ElementaryTypeName",
                        "src": "8554:4:28"
                      }
                    ],
                    "id": 9374,
                    "name": "VariableDeclaration",
                    "src": "8554:24:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_cliffInPeriods",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9375,
                        "name": "ElementaryTypeName",
                        "src": "8588:4:28"
                      }
                    ],
                    "id": 9376,
                    "name": "VariableDeclaration",
                    "src": "8588:20:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_signaturesReqToCancel",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9377,
                        "name": "ElementaryTypeName",
                        "src": "8618:4:28"
                      }
                    ],
                    "id": 9378,
                    "name": "VariableDeclaration",
                    "src": "8618:27:28"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_signersArray",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address[] calldata",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 9379,
                            "name": "ElementaryTypeName",
                            "src": "8655:7:28"
                          }
                        ],
                        "id": 9380,
                        "name": "ArrayTypeName",
                        "src": "8655:9:28"
                      }
                    ],
                    "id": 9381,
                    "name": "VariableDeclaration",
                    "src": "8655:23:28"
                  }
                ],
                "id": 9382,
                "name": "ParameterList",
                "src": "8356:328:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 9517,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9383,
                        "name": "ElementaryTypeName",
                        "src": "8718:4:28"
                      }
                    ],
                    "id": 9384,
                    "name": "VariableDeclaration",
                    "src": "8718:4:28"
                  }
                ],
                "id": 9385,
                "name": "ParameterList",
                "src": "8717:6:28"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10858,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 9386,
                            "name": "Identifier",
                            "src": "8738:6:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9378,
                                  "type": "uint256",
                                  "value": "_signaturesReqToCancel"
                                },
                                "id": 9387,
                                "name": "Identifier",
                                "src": "8745:22:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9381,
                                      "type": "address[] calldata",
                                      "value": "_signersArray"
                                    },
                                    "id": 9388,
                                    "name": "Identifier",
                                    "src": "8771:13:28"
                                  }
                                ],
                                "id": 9389,
                                "name": "MemberAccess",
                                "src": "8771:20:28"
                              }
                            ],
                            "id": 9390,
                            "name": "BinaryOperation",
                            "src": "8745:46:28"
                          }
                        ],
                        "id": 9391,
                        "name": "FunctionCall",
                        "src": "8738:54:28"
                      }
                    ],
                    "id": 9392,
                    "name": "ExpressionStatement",
                    "src": "8738:54:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10858,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 9393,
                            "name": "Identifier",
                            "src": "8802:6:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9372,
                                  "type": "uint256",
                                  "value": "_periodLength"
                                },
                                "id": 9394,
                                "name": "Identifier",
                                "src": "8809:13:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 9395,
                                "name": "Literal",
                                "src": "8825:1:28"
                              }
                            ],
                            "id": 9396,
                            "name": "BinaryOperation",
                            "src": "8809:17:28"
                          }
                        ],
                        "id": 9397,
                        "name": "FunctionCall",
                        "src": "8802:25:28"
                      }
                    ],
                    "id": 9398,
                    "name": "ExpressionStatement",
                    "src": "8802:25:28"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        9400
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "totalAmount",
                          "scope": 9517,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 9399,
                            "name": "ElementaryTypeName",
                            "src": "8863:4:28"
                          }
                        ],
                        "id": 9400,
                        "name": "VariableDeclaration",
                        "src": "8863:16:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mul",
                              "referencedDeclaration": 10158,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9370,
                                  "type": "uint256",
                                  "value": "_amountPerPeriod"
                                },
                                "id": 9401,
                                "name": "Identifier",
                                "src": "8882:16:28"
                              }
                            ],
                            "id": 9402,
                            "name": "MemberAccess",
                            "src": "8882:20:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9374,
                              "type": "uint256",
                              "value": "_numOfAgreedPeriods"
                            },
                            "id": 9403,
                            "name": "Identifier",
                            "src": "8903:19:28"
                          }
                        ],
                        "id": 9404,
                        "name": "FunctionCall",
                        "src": "8882:41:28"
                      }
                    ],
                    "id": 9405,
                    "name": "VariableDeclarationStatement",
                    "src": "8863:60:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_VestingScheme_$9762",
                                  "typeString": "contract VestingScheme"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transferFrom",
                              "referencedDeclaration": 10709,
                              "type": "function (address,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9362,
                                  "type": "contract StandardToken",
                                  "value": "_token"
                                },
                                "id": 9406,
                                "name": "Identifier",
                                "src": "8933:6:28"
                              }
                            ],
                            "id": 9408,
                            "name": "MemberAccess",
                            "src": "8933:19:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 9409,
                                "name": "Identifier",
                                "src": "8953:3:28"
                              }
                            ],
                            "id": 9410,
                            "name": "MemberAccess",
                            "src": "8953:10:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10958,
                              "type": "contract VestingScheme",
                              "value": "this"
                            },
                            "id": 9411,
                            "name": "Identifier",
                            "src": "8965:4:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9400,
                              "type": "uint256",
                              "value": "totalAmount"
                            },
                            "id": 9412,
                            "name": "Identifier",
                            "src": "8971:11:28"
                          }
                        ],
                        "id": 9413,
                        "name": "FunctionCall",
                        "src": "8933:50:28"
                      }
                    ],
                    "id": 9414,
                    "name": "ExpressionStatement",
                    "src": "8933:50:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract StandardToken"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "token",
                              "referencedDeclaration": 8938,
                              "type": "contract StandardToken"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9415,
                                    "name": "Identifier",
                                    "src": "9023:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9416,
                                    "name": "Identifier",
                                    "src": "9034:17:28"
                                  }
                                ],
                                "id": 9417,
                                "name": "IndexAccess",
                                "src": "9023:29:28"
                              }
                            ],
                            "id": 9418,
                            "name": "MemberAccess",
                            "src": "9023:35:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9362,
                              "type": "contract StandardToken",
                              "value": "_token"
                            },
                            "id": 9419,
                            "name": "Identifier",
                            "src": "9061:6:28"
                          }
                        ],
                        "id": 9420,
                        "name": "Assignment",
                        "src": "9023:44:28"
                      }
                    ],
                    "id": 9421,
                    "name": "ExpressionStatement",
                    "src": "9023:44:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "beneficiary",
                              "referencedDeclaration": 8940,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9422,
                                    "name": "Identifier",
                                    "src": "9077:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9423,
                                    "name": "Identifier",
                                    "src": "9088:17:28"
                                  }
                                ],
                                "id": 9424,
                                "name": "IndexAccess",
                                "src": "9077:29:28"
                              }
                            ],
                            "id": 9425,
                            "name": "MemberAccess",
                            "src": "9077:41:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9364,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 9426,
                            "name": "Identifier",
                            "src": "9121:12:28"
                          }
                        ],
                        "id": 9427,
                        "name": "Assignment",
                        "src": "9077:56:28"
                      }
                    ],
                    "id": 9428,
                    "name": "ExpressionStatement",
                    "src": "9077:56:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "returnOnCancelAddress",
                              "referencedDeclaration": 8942,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9429,
                                    "name": "Identifier",
                                    "src": "9143:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9430,
                                    "name": "Identifier",
                                    "src": "9154:17:28"
                                  }
                                ],
                                "id": 9431,
                                "name": "IndexAccess",
                                "src": "9143:29:28"
                              }
                            ],
                            "id": 9432,
                            "name": "MemberAccess",
                            "src": "9143:51:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9366,
                              "type": "address",
                              "value": "_returnOnCancelAddress"
                            },
                            "id": 9433,
                            "name": "Identifier",
                            "src": "9197:22:28"
                          }
                        ],
                        "id": 9434,
                        "name": "Assignment",
                        "src": "9143:76:28"
                      }
                    ],
                    "id": 9435,
                    "name": "ExpressionStatement",
                    "src": "9143:76:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "startingBlock",
                              "referencedDeclaration": 8944,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9436,
                                    "name": "Identifier",
                                    "src": "9229:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9437,
                                    "name": "Identifier",
                                    "src": "9240:17:28"
                                  }
                                ],
                                "id": 9438,
                                "name": "IndexAccess",
                                "src": "9229:29:28"
                              }
                            ],
                            "id": 9439,
                            "name": "MemberAccess",
                            "src": "9229:43:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9368,
                              "type": "uint256",
                              "value": "_startingBlock"
                            },
                            "id": 9440,
                            "name": "Identifier",
                            "src": "9275:14:28"
                          }
                        ],
                        "id": 9441,
                        "name": "Assignment",
                        "src": "9229:60:28"
                      }
                    ],
                    "id": 9442,
                    "name": "ExpressionStatement",
                    "src": "9229:60:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "amountPerPeriod",
                              "referencedDeclaration": 8946,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9443,
                                    "name": "Identifier",
                                    "src": "9299:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9444,
                                    "name": "Identifier",
                                    "src": "9310:17:28"
                                  }
                                ],
                                "id": 9445,
                                "name": "IndexAccess",
                                "src": "9299:29:28"
                              }
                            ],
                            "id": 9446,
                            "name": "MemberAccess",
                            "src": "9299:45:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9370,
                              "type": "uint256",
                              "value": "_amountPerPeriod"
                            },
                            "id": 9447,
                            "name": "Identifier",
                            "src": "9347:16:28"
                          }
                        ],
                        "id": 9448,
                        "name": "Assignment",
                        "src": "9299:64:28"
                      }
                    ],
                    "id": 9449,
                    "name": "ExpressionStatement",
                    "src": "9299:64:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "periodLength",
                              "referencedDeclaration": 8948,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9450,
                                    "name": "Identifier",
                                    "src": "9373:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9451,
                                    "name": "Identifier",
                                    "src": "9384:17:28"
                                  }
                                ],
                                "id": 9452,
                                "name": "IndexAccess",
                                "src": "9373:29:28"
                              }
                            ],
                            "id": 9453,
                            "name": "MemberAccess",
                            "src": "9373:42:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9372,
                              "type": "uint256",
                              "value": "_periodLength"
                            },
                            "id": 9454,
                            "name": "Identifier",
                            "src": "9418:13:28"
                          }
                        ],
                        "id": 9455,
                        "name": "Assignment",
                        "src": "9373:58:28"
                      }
                    ],
                    "id": 9456,
                    "name": "ExpressionStatement",
                    "src": "9373:58:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "numOfAgreedPeriods",
                              "referencedDeclaration": 8950,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9457,
                                    "name": "Identifier",
                                    "src": "9441:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9458,
                                    "name": "Identifier",
                                    "src": "9452:17:28"
                                  }
                                ],
                                "id": 9459,
                                "name": "IndexAccess",
                                "src": "9441:29:28"
                              }
                            ],
                            "id": 9460,
                            "name": "MemberAccess",
                            "src": "9441:48:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9374,
                              "type": "uint256",
                              "value": "_numOfAgreedPeriods"
                            },
                            "id": 9461,
                            "name": "Identifier",
                            "src": "9492:19:28"
                          }
                        ],
                        "id": 9462,
                        "name": "Assignment",
                        "src": "9441:70:28"
                      }
                    ],
                    "id": 9463,
                    "name": "ExpressionStatement",
                    "src": "9441:70:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "cliffInPeriods",
                              "referencedDeclaration": 8952,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9464,
                                    "name": "Identifier",
                                    "src": "9521:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9465,
                                    "name": "Identifier",
                                    "src": "9532:17:28"
                                  }
                                ],
                                "id": 9466,
                                "name": "IndexAccess",
                                "src": "9521:29:28"
                              }
                            ],
                            "id": 9467,
                            "name": "MemberAccess",
                            "src": "9521:44:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9376,
                              "type": "uint256",
                              "value": "_cliffInPeriods"
                            },
                            "id": 9468,
                            "name": "Identifier",
                            "src": "9568:15:28"
                          }
                        ],
                        "id": 9469,
                        "name": "Assignment",
                        "src": "9521:62:28"
                      }
                    ],
                    "id": 9470,
                    "name": "ExpressionStatement",
                    "src": "9521:62:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "signaturesReqToCancel",
                              "referencedDeclaration": 8954,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9471,
                                    "name": "Identifier",
                                    "src": "9593:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8988,
                                      "type": "uint256",
                                      "value": "agreementsCounter"
                                    },
                                    "id": 9472,
                                    "name": "Identifier",
                                    "src": "9604:17:28"
                                  }
                                ],
                                "id": 9473,
                                "name": "IndexAccess",
                                "src": "9593:29:28"
                              }
                            ],
                            "id": 9474,
                            "name": "MemberAccess",
                            "src": "9593:51:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9378,
                              "type": "uint256",
                              "value": "_signaturesReqToCancel"
                            },
                            "id": 9475,
                            "name": "Identifier",
                            "src": "9647:22:28"
                          }
                        ],
                        "id": 9476,
                        "name": "Assignment",
                        "src": "9593:76:28"
                      }
                    ],
                    "id": 9477,
                    "name": "ExpressionStatement",
                    "src": "9593:76:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            9479
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "name": "cnt",
                              "scope": 9517,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 9478,
                                "name": "ElementaryTypeName",
                                "src": "9723:4:28"
                              }
                            ],
                            "id": 9479,
                            "name": "VariableDeclaration",
                            "src": "9723:8:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9480,
                            "name": "Literal",
                            "src": "9734:1:28"
                          }
                        ],
                        "id": 9481,
                        "name": "VariableDeclarationStatement",
                        "src": "9723:12:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9479,
                              "type": "uint256",
                              "value": "cnt"
                            },
                            "id": 9482,
                            "name": "Identifier",
                            "src": "9737:3:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9381,
                                  "type": "address[] calldata",
                                  "value": "_signersArray"
                                },
                                "id": 9483,
                                "name": "Identifier",
                                "src": "9741:13:28"
                              }
                            ],
                            "id": 9484,
                            "name": "MemberAccess",
                            "src": "9741:20:28"
                          }
                        ],
                        "id": 9485,
                        "name": "BinaryOperation",
                        "src": "9737:24:28"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9479,
                                  "type": "uint256",
                                  "value": "cnt"
                                },
                                "id": 9486,
                                "name": "Identifier",
                                "src": "9763:3:28"
                              }
                            ],
                            "id": 9487,
                            "name": "UnaryOperation",
                            "src": "9763:5:28"
                          }
                        ],
                        "id": 9488,
                        "name": "ExpressionStatement",
                        "src": "9763:5:28"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "signers",
                                          "referencedDeclaration": 8962,
                                          "type": "mapping(address => bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct VestingScheme.Agreement storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8986,
                                                  "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                                  "value": "agreements"
                                                },
                                                "id": 9489,
                                                "name": "Identifier",
                                                "src": "9784:10:28"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8988,
                                                  "type": "uint256",
                                                  "value": "agreementsCounter"
                                                },
                                                "id": 9490,
                                                "name": "Identifier",
                                                "src": "9795:17:28"
                                              }
                                            ],
                                            "id": 9491,
                                            "name": "IndexAccess",
                                            "src": "9784:29:28"
                                          }
                                        ],
                                        "id": 9492,
                                        "name": "MemberAccess",
                                        "src": "9784:37:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9381,
                                              "type": "address[] calldata",
                                              "value": "_signersArray"
                                            },
                                            "id": 9493,
                                            "name": "Identifier",
                                            "src": "9822:13:28"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9479,
                                              "type": "uint256",
                                              "value": "cnt"
                                            },
                                            "id": 9494,
                                            "name": "Identifier",
                                            "src": "9836:3:28"
                                          }
                                        ],
                                        "id": 9495,
                                        "name": "IndexAccess",
                                        "src": "9822:18:28"
                                      }
                                    ],
                                    "id": 9496,
                                    "name": "IndexAccess",
                                    "src": "9784:57:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "74727565",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "bool",
                                      "type": "bool",
                                      "value": "true"
                                    },
                                    "id": 9497,
                                    "name": "Literal",
                                    "src": "9844:4:28"
                                  }
                                ],
                                "id": 9498,
                                "name": "Assignment",
                                "src": "9784:64:28"
                              }
                            ],
                            "id": 9499,
                            "name": "ExpressionStatement",
                            "src": "9784:64:28"
                          }
                        ],
                        "id": 9500,
                        "name": "Block",
                        "src": "9770:89:28"
                      }
                    ],
                    "id": 9501,
                    "name": "ForStatement",
                    "src": "9718:141:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "++",
                          "prefix": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8988,
                              "type": "uint256",
                              "value": "agreementsCounter"
                            },
                            "id": 9502,
                            "name": "Identifier",
                            "src": "9914:17:28"
                          }
                        ],
                        "id": 9503,
                        "name": "UnaryOperation",
                        "src": "9914:19:28"
                      }
                    ],
                    "id": 9504,
                    "name": "ExpressionStatement",
                    "src": "9914:19:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8916,
                              "type": "function (uint256)",
                              "value": "NewVestedAgreement"
                            },
                            "id": 9505,
                            "name": "Identifier",
                            "src": "9988:18:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8988,
                                  "type": "uint256",
                                  "value": "agreementsCounter"
                                },
                                "id": 9506,
                                "name": "Identifier",
                                "src": "10007:17:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 9507,
                                "name": "Literal",
                                "src": "10025:1:28"
                              }
                            ],
                            "id": 9508,
                            "name": "BinaryOperation",
                            "src": "10007:19:28"
                          }
                        ],
                        "id": 9509,
                        "name": "FunctionCall",
                        "src": "9988:39:28"
                      }
                    ],
                    "id": 9510,
                    "name": "ExpressionStatement",
                    "src": "9988:39:28"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 9385
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8988,
                                  "type": "uint256",
                                  "value": "agreementsCounter"
                                },
                                "id": 9511,
                                "name": "Identifier",
                                "src": "10044:17:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 9512,
                                "name": "Literal",
                                "src": "10062:1:28"
                              }
                            ],
                            "id": 9513,
                            "name": "BinaryOperation",
                            "src": "10044:19:28"
                          }
                        ],
                        "id": 9514,
                        "name": "TupleExpression",
                        "src": "10043:21:28"
                      }
                    ],
                    "id": 9515,
                    "name": "Return",
                    "src": "10037:27:28"
                  }
                ],
                "id": 9516,
                "name": "Block",
                "src": "8728:1343:28"
              }
            ],
            "id": 9517,
            "name": "FunctionDefinition",
            "src": "8326:1745:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "signToCancelAgreement",
              "payable": false,
              "scope": 9762,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 9572,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9518,
                        "name": "ElementaryTypeName",
                        "src": "10225:4:28"
                      }
                    ],
                    "id": 9519,
                    "name": "VariableDeclaration",
                    "src": "10225:17:28"
                  }
                ],
                "id": 9520,
                "name": "ParameterList",
                "src": "10224:19:28"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 9524,
                "name": "ParameterList",
                "src": "10276:0:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 9004,
                      "type": "modifier (uint256)",
                      "value": "onlySigner"
                    },
                    "id": 9521,
                    "name": "Identifier",
                    "src": "10251:10:28"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 9519,
                      "type": "uint256",
                      "value": "_agreementId"
                    },
                    "id": 9522,
                    "name": "Identifier",
                    "src": "10262:12:28"
                  }
                ],
                "id": 9523,
                "name": "ModifierInvocation",
                "src": "10251:24:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        9526
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "agreement",
                          "scope": 9572,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct VestingScheme.Agreement storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 8967,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 9525,
                            "name": "UserDefinedTypeName",
                            "src": "10286:9:28"
                          }
                        ],
                        "id": 9526,
                        "name": "VariableDeclaration",
                        "src": "10286:27:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8986,
                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                              "value": "agreements"
                            },
                            "id": 9527,
                            "name": "Identifier",
                            "src": "10316:10:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9519,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 9528,
                            "name": "Identifier",
                            "src": "10327:12:28"
                          }
                        ],
                        "id": 9529,
                        "name": "IndexAccess",
                        "src": "10316:24:28"
                      }
                    ],
                    "id": 9530,
                    "name": "VariableDeclarationStatement",
                    "src": "10286:54:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 9531,
                            "name": "Identifier",
                            "src": "10392:7:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!",
                              "prefix": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "signaturesReceived",
                                      "referencedDeclaration": 8966,
                                      "type": "mapping(address => bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9526,
                                          "type": "struct VestingScheme.Agreement storage pointer",
                                          "value": "agreement"
                                        },
                                        "id": 9532,
                                        "name": "Identifier",
                                        "src": "10402:9:28"
                                      }
                                    ],
                                    "id": 9533,
                                    "name": "MemberAccess",
                                    "src": "10402:28:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "sender",
                                      "referencedDeclaration": null,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10867,
                                          "type": "msg",
                                          "value": "msg"
                                        },
                                        "id": 9534,
                                        "name": "Identifier",
                                        "src": "10431:3:28"
                                      }
                                    ],
                                    "id": 9535,
                                    "name": "MemberAccess",
                                    "src": "10431:10:28"
                                  }
                                ],
                                "id": 9536,
                                "name": "IndexAccess",
                                "src": "10402:40:28"
                              }
                            ],
                            "id": 9537,
                            "name": "UnaryOperation",
                            "src": "10400:42:28"
                          }
                        ],
                        "id": 9538,
                        "name": "FunctionCall",
                        "src": "10392:51:28"
                      }
                    ],
                    "id": 9539,
                    "name": "ExpressionStatement",
                    "src": "10392:51:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "signaturesReceived",
                                  "referencedDeclaration": 8966,
                                  "type": "mapping(address => bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9526,
                                      "type": "struct VestingScheme.Agreement storage pointer",
                                      "value": "agreement"
                                    },
                                    "id": 9540,
                                    "name": "Identifier",
                                    "src": "10471:9:28"
                                  }
                                ],
                                "id": 9544,
                                "name": "MemberAccess",
                                "src": "10471:28:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 9542,
                                    "name": "Identifier",
                                    "src": "10500:3:28"
                                  }
                                ],
                                "id": 9543,
                                "name": "MemberAccess",
                                "src": "10500:10:28"
                              }
                            ],
                            "id": 9545,
                            "name": "IndexAccess",
                            "src": "10471:40:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 9546,
                            "name": "Literal",
                            "src": "10514:4:28"
                          }
                        ],
                        "id": 9547,
                        "name": "Assignment",
                        "src": "10471:47:28"
                      }
                    ],
                    "id": 9548,
                    "name": "ExpressionStatement",
                    "src": "10471:47:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "++",
                          "prefix": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "signaturesReceivedCounter",
                              "referencedDeclaration": 8958,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9526,
                                  "type": "struct VestingScheme.Agreement storage pointer",
                                  "value": "agreement"
                                },
                                "id": 9549,
                                "name": "Identifier",
                                "src": "10528:9:28"
                              }
                            ],
                            "id": 9551,
                            "name": "MemberAccess",
                            "src": "10528:35:28"
                          }
                        ],
                        "id": 9552,
                        "name": "UnaryOperation",
                        "src": "10528:37:28"
                      }
                    ],
                    "id": 9553,
                    "name": "ExpressionStatement",
                    "src": "10528:37:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8922,
                              "type": "function (uint256,address)",
                              "value": "SignToCancelAgreement"
                            },
                            "id": 9554,
                            "name": "Identifier",
                            "src": "10576:21:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9519,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 9555,
                            "name": "Identifier",
                            "src": "10598:12:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 9556,
                                "name": "Identifier",
                                "src": "10611:3:28"
                              }
                            ],
                            "id": 9557,
                            "name": "MemberAccess",
                            "src": "10611:10:28"
                          }
                        ],
                        "id": 9558,
                        "name": "FunctionCall",
                        "src": "10576:46:28"
                      }
                    ],
                    "id": 9559,
                    "name": "ExpressionStatement",
                    "src": "10576:46:28"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "signaturesReceivedCounter",
                              "referencedDeclaration": 8958,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9526,
                                  "type": "struct VestingScheme.Agreement storage pointer",
                                  "value": "agreement"
                                },
                                "id": 9560,
                                "name": "Identifier",
                                "src": "10676:9:28"
                              }
                            ],
                            "id": 9561,
                            "name": "MemberAccess",
                            "src": "10676:35:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "signaturesReqToCancel",
                              "referencedDeclaration": 8954,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9526,
                                  "type": "struct VestingScheme.Agreement storage pointer",
                                  "value": "agreement"
                                },
                                "id": 9562,
                                "name": "Identifier",
                                "src": "10715:9:28"
                              }
                            ],
                            "id": 9563,
                            "name": "MemberAccess",
                            "src": "10715:31:28"
                          }
                        ],
                        "id": 9564,
                        "name": "BinaryOperation",
                        "src": "10676:70:28"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9761,
                                      "type": "function (uint256)",
                                      "value": "cancelAgreement"
                                    },
                                    "id": 9565,
                                    "name": "Identifier",
                                    "src": "10762:15:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9519,
                                      "type": "uint256",
                                      "value": "_agreementId"
                                    },
                                    "id": 9566,
                                    "name": "Identifier",
                                    "src": "10778:12:28"
                                  }
                                ],
                                "id": 9567,
                                "name": "FunctionCall",
                                "src": "10762:29:28"
                              }
                            ],
                            "id": 9568,
                            "name": "ExpressionStatement",
                            "src": "10762:29:28"
                          }
                        ],
                        "id": 9569,
                        "name": "Block",
                        "src": "10748:54:28"
                      }
                    ],
                    "id": 9570,
                    "name": "IfStatement",
                    "src": "10672:130:28"
                  }
                ],
                "id": 9571,
                "name": "Block",
                "src": "10276:532:28"
              }
            ],
            "id": 9572,
            "name": "FunctionDefinition",
            "src": "10194:614:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "revokeSignToCancelAgreement",
              "payable": false,
              "scope": 9762,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 9615,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9573,
                        "name": "ElementaryTypeName",
                        "src": "10976:4:28"
                      }
                    ],
                    "id": 9574,
                    "name": "VariableDeclaration",
                    "src": "10976:17:28"
                  }
                ],
                "id": 9575,
                "name": "ParameterList",
                "src": "10975:19:28"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 9579,
                "name": "ParameterList",
                "src": "11027:0:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 9004,
                      "type": "modifier (uint256)",
                      "value": "onlySigner"
                    },
                    "id": 9576,
                    "name": "Identifier",
                    "src": "11002:10:28"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 9574,
                      "type": "uint256",
                      "value": "_agreementId"
                    },
                    "id": 9577,
                    "name": "Identifier",
                    "src": "11013:12:28"
                  }
                ],
                "id": 9578,
                "name": "ModifierInvocation",
                "src": "11002:24:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        9581
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "agreement",
                          "scope": 9615,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct VestingScheme.Agreement storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 8967,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 9580,
                            "name": "UserDefinedTypeName",
                            "src": "11037:9:28"
                          }
                        ],
                        "id": 9581,
                        "name": "VariableDeclaration",
                        "src": "11037:27:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8986,
                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                              "value": "agreements"
                            },
                            "id": 9582,
                            "name": "Identifier",
                            "src": "11067:10:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9574,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 9583,
                            "name": "Identifier",
                            "src": "11078:12:28"
                          }
                        ],
                        "id": 9584,
                        "name": "IndexAccess",
                        "src": "11067:24:28"
                      }
                    ],
                    "id": 9585,
                    "name": "VariableDeclarationStatement",
                    "src": "11037:54:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 9586,
                            "name": "Identifier",
                            "src": "11136:7:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "signaturesReceived",
                                  "referencedDeclaration": 8966,
                                  "type": "mapping(address => bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9581,
                                      "type": "struct VestingScheme.Agreement storage pointer",
                                      "value": "agreement"
                                    },
                                    "id": 9587,
                                    "name": "Identifier",
                                    "src": "11144:9:28"
                                  }
                                ],
                                "id": 9588,
                                "name": "MemberAccess",
                                "src": "11144:28:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 9589,
                                    "name": "Identifier",
                                    "src": "11173:3:28"
                                  }
                                ],
                                "id": 9590,
                                "name": "MemberAccess",
                                "src": "11173:10:28"
                              }
                            ],
                            "id": 9591,
                            "name": "IndexAccess",
                            "src": "11144:40:28"
                          }
                        ],
                        "id": 9592,
                        "name": "FunctionCall",
                        "src": "11136:49:28"
                      }
                    ],
                    "id": 9593,
                    "name": "ExpressionStatement",
                    "src": "11136:49:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "signaturesReceived",
                                  "referencedDeclaration": 8966,
                                  "type": "mapping(address => bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9581,
                                      "type": "struct VestingScheme.Agreement storage pointer",
                                      "value": "agreement"
                                    },
                                    "id": 9594,
                                    "name": "Identifier",
                                    "src": "11225:9:28"
                                  }
                                ],
                                "id": 9598,
                                "name": "MemberAccess",
                                "src": "11225:28:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 9596,
                                    "name": "Identifier",
                                    "src": "11254:3:28"
                                  }
                                ],
                                "id": 9597,
                                "name": "MemberAccess",
                                "src": "11254:10:28"
                              }
                            ],
                            "id": 9599,
                            "name": "IndexAccess",
                            "src": "11225:40:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 9600,
                            "name": "Literal",
                            "src": "11268:5:28"
                          }
                        ],
                        "id": 9601,
                        "name": "Assignment",
                        "src": "11225:48:28"
                      }
                    ],
                    "id": 9602,
                    "name": "ExpressionStatement",
                    "src": "11225:48:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "--",
                          "prefix": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "signaturesReceivedCounter",
                              "referencedDeclaration": 8958,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9581,
                                  "type": "struct VestingScheme.Agreement storage pointer",
                                  "value": "agreement"
                                },
                                "id": 9603,
                                "name": "Identifier",
                                "src": "11283:9:28"
                              }
                            ],
                            "id": 9605,
                            "name": "MemberAccess",
                            "src": "11283:35:28"
                          }
                        ],
                        "id": 9606,
                        "name": "UnaryOperation",
                        "src": "11283:37:28"
                      }
                    ],
                    "id": 9607,
                    "name": "ExpressionStatement",
                    "src": "11283:37:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8928,
                              "type": "function (uint256,address)",
                              "value": "RevokeSignToCancelAgreement"
                            },
                            "id": 9608,
                            "name": "Identifier",
                            "src": "11331:27:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9574,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 9609,
                            "name": "Identifier",
                            "src": "11359:12:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 9610,
                                "name": "Identifier",
                                "src": "11372:3:28"
                              }
                            ],
                            "id": 9611,
                            "name": "MemberAccess",
                            "src": "11372:10:28"
                          }
                        ],
                        "id": 9612,
                        "name": "FunctionCall",
                        "src": "11331:52:28"
                      }
                    ],
                    "id": 9613,
                    "name": "ExpressionStatement",
                    "src": "11331:52:28"
                  }
                ],
                "id": 9614,
                "name": "Block",
                "src": "11027:363:28"
              }
            ],
            "id": 9615,
            "name": "FunctionDefinition",
            "src": "10939:451:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "collect",
              "payable": false,
              "scope": 9762,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 9713,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9616,
                        "name": "ElementaryTypeName",
                        "src": "11528:4:28"
                      }
                    ],
                    "id": 9617,
                    "name": "VariableDeclaration",
                    "src": "11528:17:28"
                  }
                ],
                "id": 9618,
                "name": "ParameterList",
                "src": "11527:19:28"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 9622,
                "name": "ParameterList",
                "src": "11584:0:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 9020,
                      "type": "modifier (uint256)",
                      "value": "onlyBeneficiary"
                    },
                    "id": 9619,
                    "name": "Identifier",
                    "src": "11554:15:28"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 9617,
                      "type": "uint256",
                      "value": "_agreementId"
                    },
                    "id": 9620,
                    "name": "Identifier",
                    "src": "11570:12:28"
                  }
                ],
                "id": 9621,
                "name": "ModifierInvocation",
                "src": "11554:29:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        9624
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "agreement",
                          "scope": 9713,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct VestingScheme.Agreement memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 8967,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 9623,
                            "name": "UserDefinedTypeName",
                            "src": "11594:9:28"
                          }
                        ],
                        "id": 9624,
                        "name": "VariableDeclaration",
                        "src": "11594:26:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8986,
                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                              "value": "agreements"
                            },
                            "id": 9625,
                            "name": "Identifier",
                            "src": "11623:10:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9617,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 9626,
                            "name": "Identifier",
                            "src": "11634:12:28"
                          }
                        ],
                        "id": 9627,
                        "name": "IndexAccess",
                        "src": "11623:24:28"
                      }
                    ],
                    "id": 9628,
                    "name": "VariableDeclarationStatement",
                    "src": "11594:53:28"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        9630
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "periodsFromStartingBlock",
                          "scope": 9713,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 9629,
                            "name": "ElementaryTypeName",
                            "src": "11657:4:28"
                          }
                        ],
                        "id": 9630,
                        "name": "VariableDeclaration",
                        "src": "11657:29:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "div",
                              "referencedDeclaration": 10176,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint256",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sub",
                                          "referencedDeclaration": 10196,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "number",
                                              "referencedDeclaration": null,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10859,
                                                  "type": "block",
                                                  "value": "block"
                                                },
                                                "id": 9631,
                                                "name": "Identifier",
                                                "src": "11690:5:28"
                                              }
                                            ],
                                            "id": 9632,
                                            "name": "MemberAccess",
                                            "src": "11690:12:28"
                                          }
                                        ],
                                        "id": 9633,
                                        "name": "MemberAccess",
                                        "src": "11690:16:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "startingBlock",
                                          "referencedDeclaration": 8944,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9624,
                                              "type": "struct VestingScheme.Agreement memory",
                                              "value": "agreement"
                                            },
                                            "id": 9634,
                                            "name": "Identifier",
                                            "src": "11707:9:28"
                                          }
                                        ],
                                        "id": 9635,
                                        "name": "MemberAccess",
                                        "src": "11707:23:28"
                                      }
                                    ],
                                    "id": 9636,
                                    "name": "FunctionCall",
                                    "src": "11690:41:28"
                                  }
                                ],
                                "id": 9637,
                                "name": "TupleExpression",
                                "src": "11689:43:28"
                              }
                            ],
                            "id": 9638,
                            "name": "MemberAccess",
                            "src": "11689:47:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "periodLength",
                              "referencedDeclaration": 8948,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9624,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 9639,
                                "name": "Identifier",
                                "src": "11737:9:28"
                              }
                            ],
                            "id": 9640,
                            "name": "MemberAccess",
                            "src": "11737:22:28"
                          }
                        ],
                        "id": 9641,
                        "name": "FunctionCall",
                        "src": "11689:71:28"
                      }
                    ],
                    "id": 9642,
                    "name": "VariableDeclarationStatement",
                    "src": "11657:103:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10858,
                              "type": "function (bool) pure",
                              "value": "assert"
                            },
                            "id": 9643,
                            "name": "Identifier",
                            "src": "11770:6:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9630,
                                  "type": "uint256",
                                  "value": "periodsFromStartingBlock"
                                },
                                "id": 9644,
                                "name": "Identifier",
                                "src": "11777:24:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "cliffInPeriods",
                                  "referencedDeclaration": 8952,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9624,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "agreement"
                                    },
                                    "id": 9645,
                                    "name": "Identifier",
                                    "src": "11805:9:28"
                                  }
                                ],
                                "id": 9646,
                                "name": "MemberAccess",
                                "src": "11805:24:28"
                              }
                            ],
                            "id": 9647,
                            "name": "BinaryOperation",
                            "src": "11777:52:28"
                          }
                        ],
                        "id": 9648,
                        "name": "FunctionCall",
                        "src": "11770:60:28"
                      }
                    ],
                    "id": 9649,
                    "name": "ExpressionStatement",
                    "src": "11770:60:28"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "periodsToPay",
                          "scope": 9713,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 9650,
                            "name": "ElementaryTypeName",
                            "src": "11876:4:28"
                          }
                        ],
                        "id": 9651,
                        "name": "VariableDeclaration",
                        "src": "11876:17:28"
                      }
                    ],
                    "id": 9652,
                    "name": "VariableDeclarationStatement",
                    "src": "11876:17:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9630,
                              "type": "uint256",
                              "value": "periodsFromStartingBlock"
                            },
                            "id": 9653,
                            "name": "Identifier",
                            "src": "11907:24:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "numOfAgreedPeriods",
                              "referencedDeclaration": 8950,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9624,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 9654,
                                "name": "Identifier",
                                "src": "11935:9:28"
                              }
                            ],
                            "id": 9655,
                            "name": "MemberAccess",
                            "src": "11935:28:28"
                          }
                        ],
                        "id": 9656,
                        "name": "BinaryOperation",
                        "src": "11907:56:28"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9651,
                                      "type": "uint256",
                                      "value": "periodsToPay"
                                    },
                                    "id": 9657,
                                    "name": "Identifier",
                                    "src": "11979:12:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint256",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sub",
                                          "referencedDeclaration": 10196,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "numOfAgreedPeriods",
                                              "referencedDeclaration": 8950,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 9624,
                                                  "type": "struct VestingScheme.Agreement memory",
                                                  "value": "agreement"
                                                },
                                                "id": 9658,
                                                "name": "Identifier",
                                                "src": "11994:9:28"
                                              }
                                            ],
                                            "id": 9659,
                                            "name": "MemberAccess",
                                            "src": "11994:28:28"
                                          }
                                        ],
                                        "id": 9660,
                                        "name": "MemberAccess",
                                        "src": "11994:32:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "collectedPeriods",
                                          "referencedDeclaration": 8956,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9624,
                                              "type": "struct VestingScheme.Agreement memory",
                                              "value": "agreement"
                                            },
                                            "id": 9661,
                                            "name": "Identifier",
                                            "src": "12027:9:28"
                                          }
                                        ],
                                        "id": 9662,
                                        "name": "MemberAccess",
                                        "src": "12027:26:28"
                                      }
                                    ],
                                    "id": 9663,
                                    "name": "FunctionCall",
                                    "src": "11994:60:28"
                                  }
                                ],
                                "id": 9664,
                                "name": "Assignment",
                                "src": "11979:75:28"
                              }
                            ],
                            "id": 9665,
                            "name": "ExpressionStatement",
                            "src": "11979:75:28"
                          }
                        ],
                        "id": 9666,
                        "name": "Block",
                        "src": "11965:100:28"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9651,
                                      "type": "uint256",
                                      "value": "periodsToPay"
                                    },
                                    "id": 9667,
                                    "name": "Identifier",
                                    "src": "12085:12:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "uint256",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sub",
                                          "referencedDeclaration": 10196,
                                          "type": "function (uint256,uint256) pure returns (uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9630,
                                              "type": "uint256",
                                              "value": "periodsFromStartingBlock"
                                            },
                                            "id": 9668,
                                            "name": "Identifier",
                                            "src": "12100:24:28"
                                          }
                                        ],
                                        "id": 9669,
                                        "name": "MemberAccess",
                                        "src": "12100:28:28"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "collectedPeriods",
                                          "referencedDeclaration": 8956,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9624,
                                              "type": "struct VestingScheme.Agreement memory",
                                              "value": "agreement"
                                            },
                                            "id": 9670,
                                            "name": "Identifier",
                                            "src": "12129:9:28"
                                          }
                                        ],
                                        "id": 9671,
                                        "name": "MemberAccess",
                                        "src": "12129:26:28"
                                      }
                                    ],
                                    "id": 9672,
                                    "name": "FunctionCall",
                                    "src": "12100:56:28"
                                  }
                                ],
                                "id": 9673,
                                "name": "Assignment",
                                "src": "12085:71:28"
                              }
                            ],
                            "id": 9674,
                            "name": "ExpressionStatement",
                            "src": "12085:71:28"
                          }
                        ],
                        "id": 9675,
                        "name": "Block",
                        "src": "12071:96:28"
                      }
                    ],
                    "id": 9676,
                    "name": "IfStatement",
                    "src": "11903:264:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "collectedPeriods",
                              "referencedDeclaration": 8956,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct VestingScheme.Agreement storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8986,
                                      "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                      "value": "agreements"
                                    },
                                    "id": 9677,
                                    "name": "Identifier",
                                    "src": "12208:10:28"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9617,
                                      "type": "uint256",
                                      "value": "_agreementId"
                                    },
                                    "id": 9678,
                                    "name": "Identifier",
                                    "src": "12219:12:28"
                                  }
                                ],
                                "id": 9679,
                                "name": "IndexAccess",
                                "src": "12208:24:28"
                              }
                            ],
                            "id": 9680,
                            "name": "MemberAccess",
                            "src": "12208:41:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "add",
                                  "referencedDeclaration": 10220,
                                  "type": "function (uint256,uint256) pure returns (uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "collectedPeriods",
                                      "referencedDeclaration": 8956,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct VestingScheme.Agreement storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8986,
                                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                              "value": "agreements"
                                            },
                                            "id": 9681,
                                            "name": "Identifier",
                                            "src": "12252:10:28"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9617,
                                              "type": "uint256",
                                              "value": "_agreementId"
                                            },
                                            "id": 9682,
                                            "name": "Identifier",
                                            "src": "12263:12:28"
                                          }
                                        ],
                                        "id": 9683,
                                        "name": "IndexAccess",
                                        "src": "12252:24:28"
                                      }
                                    ],
                                    "id": 9684,
                                    "name": "MemberAccess",
                                    "src": "12252:41:28"
                                  }
                                ],
                                "id": 9685,
                                "name": "MemberAccess",
                                "src": "12252:45:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9651,
                                  "type": "uint256",
                                  "value": "periodsToPay"
                                },
                                "id": 9686,
                                "name": "Identifier",
                                "src": "12298:12:28"
                              }
                            ],
                            "id": 9687,
                            "name": "FunctionCall",
                            "src": "12252:59:28"
                          }
                        ],
                        "id": 9688,
                        "name": "Assignment",
                        "src": "12208:103:28"
                      }
                    ],
                    "id": 9689,
                    "name": "ExpressionStatement",
                    "src": "12208:103:28"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        9691
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "tokensToTransfer",
                          "scope": 9713,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 9690,
                            "name": "ElementaryTypeName",
                            "src": "12343:4:28"
                          }
                        ],
                        "id": 9691,
                        "name": "VariableDeclaration",
                        "src": "12343:21:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mul",
                              "referencedDeclaration": 10158,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9651,
                                  "type": "uint256",
                                  "value": "periodsToPay"
                                },
                                "id": 9692,
                                "name": "Identifier",
                                "src": "12367:12:28"
                              }
                            ],
                            "id": 9693,
                            "name": "MemberAccess",
                            "src": "12367:16:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "amountPerPeriod",
                              "referencedDeclaration": 8946,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9624,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 9694,
                                "name": "Identifier",
                                "src": "12384:9:28"
                              }
                            ],
                            "id": 9695,
                            "name": "MemberAccess",
                            "src": "12384:25:28"
                          }
                        ],
                        "id": 9696,
                        "name": "FunctionCall",
                        "src": "12367:43:28"
                      }
                    ],
                    "id": 9697,
                    "name": "VariableDeclarationStatement",
                    "src": "12343:67:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transfer",
                              "referencedDeclaration": 10374,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "token",
                                  "referencedDeclaration": 8938,
                                  "type": "contract StandardToken"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9624,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "agreement"
                                    },
                                    "id": 9698,
                                    "name": "Identifier",
                                    "src": "12420:9:28"
                                  }
                                ],
                                "id": 9701,
                                "name": "MemberAccess",
                                "src": "12420:15:28"
                              }
                            ],
                            "id": 9702,
                            "name": "MemberAccess",
                            "src": "12420:24:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "beneficiary",
                              "referencedDeclaration": 8940,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9624,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 9703,
                                "name": "Identifier",
                                "src": "12445:9:28"
                              }
                            ],
                            "id": 9704,
                            "name": "MemberAccess",
                            "src": "12445:21:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9691,
                              "type": "uint256",
                              "value": "tokensToTransfer"
                            },
                            "id": 9705,
                            "name": "Identifier",
                            "src": "12468:16:28"
                          }
                        ],
                        "id": 9706,
                        "name": "FunctionCall",
                        "src": "12420:65:28"
                      }
                    ],
                    "id": 9707,
                    "name": "ExpressionStatement",
                    "src": "12420:65:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8936,
                              "type": "function (uint256)",
                              "value": "LogCollect"
                            },
                            "id": 9708,
                            "name": "Identifier",
                            "src": "12522:10:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9617,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 9709,
                            "name": "Identifier",
                            "src": "12533:12:28"
                          }
                        ],
                        "id": 9710,
                        "name": "FunctionCall",
                        "src": "12522:24:28"
                      }
                    ],
                    "id": 9711,
                    "name": "ExpressionStatement",
                    "src": "12522:24:28"
                  }
                ],
                "id": 9712,
                "name": "Block",
                "src": "11584:969:28"
              }
            ],
            "id": 9713,
            "name": "FunctionDefinition",
            "src": "11511:1042:28"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "cancelAgreement",
              "payable": false,
              "scope": 9762,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_agreementId",
                      "scope": 9761,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 9714,
                        "name": "ElementaryTypeName",
                        "src": "12703:4:28"
                      }
                    ],
                    "id": 9715,
                    "name": "VariableDeclaration",
                    "src": "12703:17:28"
                  }
                ],
                "id": 9716,
                "name": "ParameterList",
                "src": "12702:19:28"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 9717,
                "name": "ParameterList",
                "src": "12731:0:28"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        9719
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "agreement",
                          "scope": 9761,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct VestingScheme.Agreement memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Agreement",
                              "referencedDeclaration": 8967,
                              "type": "struct VestingScheme.Agreement storage pointer"
                            },
                            "id": 9718,
                            "name": "UserDefinedTypeName",
                            "src": "12741:9:28"
                          }
                        ],
                        "id": 9719,
                        "name": "VariableDeclaration",
                        "src": "12741:26:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct VestingScheme.Agreement storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8986,
                              "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                              "value": "agreements"
                            },
                            "id": 9720,
                            "name": "Identifier",
                            "src": "12770:10:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9715,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 9721,
                            "name": "Identifier",
                            "src": "12781:12:28"
                          }
                        ],
                        "id": 9722,
                        "name": "IndexAccess",
                        "src": "12770:24:28"
                      }
                    ],
                    "id": 9723,
                    "name": "VariableDeclarationStatement",
                    "src": "12741:53:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct VestingScheme.Agreement storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8986,
                                  "type": "mapping(uint256 => struct VestingScheme.Agreement storage ref)",
                                  "value": "agreements"
                                },
                                "id": 9724,
                                "name": "Identifier",
                                "src": "12812:10:28"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9715,
                                  "type": "uint256",
                                  "value": "_agreementId"
                                },
                                "id": 9725,
                                "name": "Identifier",
                                "src": "12823:12:28"
                              }
                            ],
                            "id": 9726,
                            "name": "IndexAccess",
                            "src": "12812:24:28"
                          }
                        ],
                        "id": 9727,
                        "name": "UnaryOperation",
                        "src": "12804:32:28"
                      }
                    ],
                    "id": 9728,
                    "name": "ExpressionStatement",
                    "src": "12804:32:28"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        9730
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "periodsLeft",
                          "scope": 9761,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 9729,
                            "name": "ElementaryTypeName",
                            "src": "12846:4:28"
                          }
                        ],
                        "id": 9730,
                        "name": "VariableDeclaration",
                        "src": "12846:16:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sub",
                              "referencedDeclaration": 10196,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "numOfAgreedPeriods",
                                  "referencedDeclaration": 8950,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9719,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "agreement"
                                    },
                                    "id": 9731,
                                    "name": "Identifier",
                                    "src": "12865:9:28"
                                  }
                                ],
                                "id": 9732,
                                "name": "MemberAccess",
                                "src": "12865:28:28"
                              }
                            ],
                            "id": 9733,
                            "name": "MemberAccess",
                            "src": "12865:32:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "collectedPeriods",
                              "referencedDeclaration": 8956,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9719,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 9734,
                                "name": "Identifier",
                                "src": "12898:9:28"
                              }
                            ],
                            "id": 9735,
                            "name": "MemberAccess",
                            "src": "12898:26:28"
                          }
                        ],
                        "id": 9736,
                        "name": "FunctionCall",
                        "src": "12865:60:28"
                      }
                    ],
                    "id": 9737,
                    "name": "VariableDeclarationStatement",
                    "src": "12846:79:28"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        9739
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "tokensLeft",
                          "scope": 9761,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 9738,
                            "name": "ElementaryTypeName",
                            "src": "12935:4:28"
                          }
                        ],
                        "id": 9739,
                        "name": "VariableDeclaration",
                        "src": "12935:15:28"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mul",
                              "referencedDeclaration": 10158,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9730,
                                  "type": "uint256",
                                  "value": "periodsLeft"
                                },
                                "id": 9740,
                                "name": "Identifier",
                                "src": "12953:11:28"
                              }
                            ],
                            "id": 9741,
                            "name": "MemberAccess",
                            "src": "12953:15:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "amountPerPeriod",
                              "referencedDeclaration": 8946,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9719,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 9742,
                                "name": "Identifier",
                                "src": "12969:9:28"
                              }
                            ],
                            "id": 9743,
                            "name": "MemberAccess",
                            "src": "12969:25:28"
                          }
                        ],
                        "id": 9744,
                        "name": "FunctionCall",
                        "src": "12953:42:28"
                      }
                    ],
                    "id": 9745,
                    "name": "VariableDeclarationStatement",
                    "src": "12935:60:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transfer",
                              "referencedDeclaration": 10374,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "token",
                                  "referencedDeclaration": 8938,
                                  "type": "contract StandardToken"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9719,
                                      "type": "struct VestingScheme.Agreement memory",
                                      "value": "agreement"
                                    },
                                    "id": 9746,
                                    "name": "Identifier",
                                    "src": "13005:9:28"
                                  }
                                ],
                                "id": 9749,
                                "name": "MemberAccess",
                                "src": "13005:15:28"
                              }
                            ],
                            "id": 9750,
                            "name": "MemberAccess",
                            "src": "13005:24:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "returnOnCancelAddress",
                              "referencedDeclaration": 8942,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9719,
                                  "type": "struct VestingScheme.Agreement memory",
                                  "value": "agreement"
                                },
                                "id": 9751,
                                "name": "Identifier",
                                "src": "13030:9:28"
                              }
                            ],
                            "id": 9752,
                            "name": "MemberAccess",
                            "src": "13030:31:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9739,
                              "type": "uint256",
                              "value": "tokensLeft"
                            },
                            "id": 9753,
                            "name": "Identifier",
                            "src": "13063:10:28"
                          }
                        ],
                        "id": 9754,
                        "name": "FunctionCall",
                        "src": "13005:69:28"
                      }
                    ],
                    "id": 9755,
                    "name": "ExpressionStatement",
                    "src": "13005:69:28"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8932,
                              "type": "function (uint256)",
                              "value": "LogAgreementCancel"
                            },
                            "id": 9756,
                            "name": "Identifier",
                            "src": "13120:18:28"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9715,
                              "type": "uint256",
                              "value": "_agreementId"
                            },
                            "id": 9757,
                            "name": "Identifier",
                            "src": "13139:12:28"
                          }
                        ],
                        "id": 9758,
                        "name": "FunctionCall",
                        "src": "13120:32:28"
                      }
                    ],
                    "id": 9759,
                    "name": "ExpressionStatement",
                    "src": "13120:32:28"
                  }
                ],
                "id": 9760,
                "name": "Block",
                "src": "12731:428:28"
              }
            ],
            "id": 9761,
            "name": "FunctionDefinition",
            "src": "12678:481:28"
          }
        ],
        "id": 9762,
        "name": "ContractDefinition",
        "src": "219:12942:28"
      }
    ],
    "id": 9763,
    "name": "SourceUnit",
    "src": "0:13162:28"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-01-25T13:14:57.926Z"
}