{
  "contractName": "DaoPointsStorage",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "resolver",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "key",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "get_contract",
      "outputs": [
        {
          "name": "_contract",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CONTRACT_ADDRESS",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_resolver",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_participant",
          "type": "address"
        },
        {
          "name": "_point",
          "type": "uint256"
        },
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "addQuarterPoint",
      "outputs": [
        {
          "name": "_newPoint",
          "type": "uint256"
        },
        {
          "name": "_newTotalPoint",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_participant",
          "type": "address"
        },
        {
          "name": "_point",
          "type": "uint256"
        },
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "addModeratorQuarterPoint",
      "outputs": [
        {
          "name": "_newPoint",
          "type": "uint256"
        },
        {
          "name": "_newTotalPoint",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_participant",
          "type": "address"
        },
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "getQuarterPoint",
      "outputs": [
        {
          "name": "_point",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_participant",
          "type": "address"
        },
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "getQuarterModeratorPoint",
      "outputs": [
        {
          "name": "_point",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "getTotalQuarterPoint",
      "outputs": [
        {
          "name": "_totalPoint",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "getTotalQuarterModeratorPoint",
      "outputs": [
        {
          "name": "_totalPoint",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_participant",
          "type": "address"
        },
        {
          "name": "_point",
          "type": "uint256"
        }
      ],
      "name": "increaseReputation",
      "outputs": [
        {
          "name": "_newPoint",
          "type": "uint256"
        },
        {
          "name": "_totalPoint",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_participant",
          "type": "address"
        },
        {
          "name": "_point",
          "type": "uint256"
        }
      ],
      "name": "reduceReputation",
      "outputs": [
        {
          "name": "_newPoint",
          "type": "uint256"
        },
        {
          "name": "_totalPoint",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_participant",
          "type": "address"
        }
      ],
      "name": "getReputation",
      "outputs": [
        {
          "name": "_point",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getTotalReputation",
      "outputs": [
        {
          "name": "_totalPoint",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001026003906000191690556000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f70726f706f73616c5f73746174655f70726570726f706f73616c0000000000006005906000191690557f70726f706f73616c5f73746174655f64726166740000000000000000000000006006906000191690557f70726f706f73616c5f73746174655f6d6f6465726174656400000000000000006007906000191690557f70726f706f73616c5f73746174655f6f6e676f696e67000000000000000000006008906000191690557f70726f706f73616c5f73746174655f636c6f73656400000000000000000000006009906000191690557f70726f706f73616c5f73746174655f6172636869766564000000000000000000600a906000191690556001600b556002600c556003600d556001600e556002600f5560036010557f696e7465725f6467645f696400000000000000000000000000000000000000006011906000191690557f696e7465725f6d6f645f6467645f6964000000000000000000000000000000006012906000191690557f696e7465725f626f6e75735f63616c63756c6174696f6e5f69640000000000006013906000191690557f64616f00000000000000000000000000000000000000000000000000000000006014906000191690557f64616f3a7370656369616c3a70726f706f73616c0000000000000000000000006015906000191690557f64616f3a7374616b652d6c6f636b696e670000000000000000000000000000006016906000191690557f64616f3a766f74696e67000000000000000000000000000000000000000000006017906000191690557f64616f3a766f74696e673a636c61696d730000000000000000000000000000006018906000191690557f64616f3a73766f74696e673a636c61696d7300000000000000000000000000006019906000191690557f64616f3a6964656e746974790000000000000000000000000000000000000000601a906000191690557f64616f3a726577617264732d6d616e6167657200000000000000000000000000601b906000191690557f64616f3a726577617264732d6578747261730000000000000000000000000000601c906000191690557f64616f3a726f6c65730000000000000000000000000000000000000000000000601d906000191690557f64616f3a66756e64696e672d6d616e6167657200000000000000000000000000601e906000191690557f64616f3a77686974656c697374696e6700000000000000000000000000000000601f906000191690557f64616f3a696e666f726d6174696f6e00000000000000000000000000000000006020906000191690557f736572766963653a726f6c6500000000000000000000000000000000000000006021906000191690557f736572766963653a64616f3a696e666f000000000000000000000000000000006022906000191690557f736572766963653a64616f3a6c697374696e67000000000000000000000000006023906000191690557f736572766963653a64616f3a63616c63756c61746f72000000000000000000006024906000191690557f73746f726167653a64616f0000000000000000000000000000000000000000006025906000191690557f73746f726167653a64616f3a636f756e746572000000000000000000000000006026906000191690557f73746f726167653a64616f3a75706772616465000000000000000000000000006027906000191690557f73746f726167653a64616f3a6964656e746974790000000000000000000000006028906000191690557f73746f726167653a64616f3a706f696e747300000000000000000000000000006029906000191690557f73746f726167653a64616f3a7370656369616c00000000000000000000000000602a906000191690557f73746f726167653a64616f3a636f6e6669670000000000000000000000000000602b906000191690557f73746f726167653a64616f3a7374616b65000000000000000000000000000000602c906000191690557f73746f726167653a64616f3a7265776172647300000000000000000000000000602d906000191690557f73746f726167653a64616f3a77686974656c697374696e670000000000000000602e906000191690557f73746f726167653a696e7465726d6564696174653a726573756c747300000000602f906000191690557f743a6467640000000000000000000000000000000000000000000000000000006030906000191690557f743a6467780000000000000000000000000000000000000000000000000000006031906000191690557f743a6261646765000000000000000000000000000000000000000000000000006032906000191690556001603360006101000a81548160ff021916908360ff1602179055506002603360016101000a81548160ff021916908360ff1602179055506003603360026101000a81548160ff021916908360ff1602179055506004603360036101000a81548160ff021916908360ff1602179055506276a7006034557f6d696e5f6467645f7061727469636970616e74000000000000000000000000006035906000191690557f6d696e5f6467645f6d6f64657261746f720000000000000000000000000000006036906000191690557f6d696e5f72657075746174696f6e5f6d6f64657261746f7200000000000000006037906000191690557f6c6f636b696e675f70686173655f6475726174696f6e000000000000000000006038906000191690557f717561727465725f6475726174696f6e000000000000000000000000000000006039906000191690557f766f74696e675f636f6d6d69745f706861736500000000000000000000000000603a906000191690557f766f74696e675f70686173655f746f74616c0000000000000000000000000000603b906000191690557f696e746572696d5f766f74696e675f636f6d6d69745f70686173650000000000603c906000191690557f696e746572696d5f766f74696e675f70686173655f746f74616c000000000000603d906000191690557f64726166745f71756f72756d5f66697865645f6e756d657261746f7200000000603e906000191690557f64726166745f71756f72756d5f66697865645f64656e6f6d696e61746f720000603f906000191690557f64726166745f71756f72756d5f73666163746f725f6e756d657261746f7200006040906000191690557f64726166745f71756f72756d5f73666163746f725f64656e6f6d696e61746f726041906000191690557f766f74655f71756f72756d5f66697865645f6e756d657261746f7200000000006042906000191690557f766f74655f71756f72756d5f66697865645f64656e6f6d696e61746f720000006043906000191690557f766f74655f71756f72756d5f73666163746f725f6e756d657261746f720000006044906000191690557f766f74655f71756f72756d5f73666163746f725f64656e6f6d696e61746f72006045906000191690557f66696e616c5f7265776172645f73666163746f725f6e756d657261746f7200006046906000191690557f66696e616c5f7265776172645f73666163746f725f64656e6f6d696e61746f726047906000191690557f64726166745f71756f74615f6e756d657261746f7200000000000000000000006048906000191690557f64726166745f71756f74615f64656e6f6d696e61746f720000000000000000006049906000191690557f766f74696e675f71756f74615f6e756d657261746f7200000000000000000000604a906000191690557f766f74696e675f71756f74615f64656e6f6d696e61746f720000000000000000604b906000191690557f6d696e696d616c5f717000000000000000000000000000000000000000000000604c906000191690557f717561727465725f706f696e745f7363616c696e675f666163746f7200000000604d906000191690557f7265705f706f696e745f7363616c696e675f666163746f720000000000000000604e906000191690557f6d696e696d616c5f6d6f645f7170000000000000000000000000000000000000604f906000191690557f6d6f645f71705f7363616c696e675f666163746f7200000000000000000000006050906000191690557f6d6f645f7265705f706f696e745f7363616c696e675f666163746f72000000006051906000191690557f717561727465725f706f696e745f64726166745f766f746500000000000000006052906000191690557f717561727465725f706f696e745f766f746500000000000000000000000000006053906000191690557f717561727465725f706f696e745f696e746572696d5f766f74650000000000006054906000191690557f715f705f6d696c6573746f6e655f636f6d706c6574696f6e00000000000000006055906000191690557f626f6e75735f72657075746174696f6e5f6e756d657261746f720000000000006056906000191690557f626f6e75735f72657075746174696f6e5f64656e6f6d696e61746f72000000006057906000191690557f7370656369616c5f70726f706f73616c5f636f6d6d69745f70686173650000006058906000191690557f7370656369616c5f70726f706f73616c5f70686173655f746f74616c000000006059906000191690557f636f6e6669675f7370656369616c5f71756f74615f6e756d657261746f720000605a906000191690557f636f6e6669675f7370656369616c5f71756f74615f64656e6f6d696e61746f72605b906000191690557f7370656369616c5f71756f72756d5f6e756d657261746f720000000000000000605c906000191690557f7370656369616c5f71756f72756d5f64656e6f6d696e61746f72000000000000605d906000191690557f636f6e6669675f6d61785f72657075746174696f6e5f646564756374696f6e00605e906000191690557f636f6e6669675f70756e6973686d656e745f6e6f745f6c6f636b696e67000000605f906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f6e756d00000000006060906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f64656e00000000006061906000191690557f636f6e6669675f6d61785f6d5f72705f646564756374696f6e000000000000006062906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f6e756d0000006063906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f64656e0000006064906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f6e756d000000000000000000006065906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f64656e000000000000000000006066906000191690557f636f6e6669675f64726166745f766f74696e675f7068617365000000000000006067906000191690557f636f6e6669675f72705f626f6f73745f7065725f6261646765000000000000006068906000191690557f636f6e6669675f636c61696d696e675f646561646c696e6500000000000000006069906000191690557f636f6e6669675f70726570726f706f73616c5f636f6c6c61746572616c000000606a906000191690557f636f6e6669675f6d61785f66756e64696e675f6e6f6e44696769780000000000606b906000191690557f636f6e6669675f6d61785f6d696c6573746f6e65735f6e6f6e44696769780000606c906000191690557f636f6e6669675f6e6f6e44696769785f70726f706f73616c5f63617000000000606d906000191690557f636f6e6669675f646561645f6475726174696f6e000000000000000000000000606e906000191690557f636f6e6669675f63765f72657075746174696f6e000000000000000000000000606f906000191690553480156200113457600080fd5b506040516020806200255583398101806040528101908080519060200190929190505050620011756029548262001188640100000000026401000000009004565b15156200118157600080fd5b5062001419565b6000808273ffffffffffffffffffffffffffffffffffffffff16636d19a8826040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620011f057600080fd5b505af115801562001205573d6000803e3d6000fd5b505050506040513d60208110156200121c57600080fd5b810190808051906020019092919050505090506000151581151514156200140d5730600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600181600019169055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c0f6ef4a600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620013ba57600080fd5b505af1158015620013cf573d6000803e3d6000fd5b505050506040513d6020811015620013e657600080fd5b810190808051906020019092919050505015156200140357600080fd5b6001915062001412565b600091505b5092915050565b61112c80620014296000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146100d557806317a129501461012c5780631eee01541461015757806329101470146101c95780633943380c1461020a5780633f83acff1461023d5780637478fbe3146102ae5780637b22ebce1461031657806393383c51146103575780639c89a0e2146103b8578063a5a9f5bb1461040f578063db4ecbc114610470578063ded86d68146104c7578063f2f80af41461052f575b600080fd5b3480156100e157600080fd5b506100ea6105a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101416105c6565b6040518082815260200191505060405180910390f35b34801561016357600080fd5b506101ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506105d3565b604051808381526020018281526020019250505060405180910390f35b3480156101d557600080fd5b506101f46004803603810190808035906020019092919050505061079a565b6040518082815260200191505060405180910390f35b34801561021657600080fd5b5061021f6107ba565b60405180826000191660001916815260200191505060405180910390f35b34801561024957600080fd5b5061026c60048036038101908080356000191690602001909291905050506107c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102ba57600080fd5b506102f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061089c565b604051808381526020018281526020019250505060405180910390f35b34801561032257600080fd5b5061034160048036038101908080359060200190929190505050610adf565b6040518082815260200191505060405180910390f35b34801561036357600080fd5b506103a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aff565b6040518082815260200191505060405180910390f35b3480156103c457600080fd5b506103f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5d565b6040518082815260200191505060405180910390f35b34801561041b57600080fd5b5061045a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ba9565b6040518082815260200191505060405180910390f35b34801561047c57600080fd5b50610485610c07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d357600080fd5b50610512600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c2d565b604051808381526020018281526020019250505060405180910390f35b34801561053b57600080fd5b50610584600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610d8d565b604051808381526020018281526020019250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000607060000154905090565b60008061061860606040519081016040528060175460001916600019168152602001601854600019166000191681526020016003546000191660001916815250610f54565b151561062357600080fd5b61064c8460726000868152602001908152602001600020600001546110cb90919063ffffffff16565b60726000858152602001908152602001600020600001819055506106cc846072600086815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110cb90919063ffffffff16565b6072600085815260200190815260200160002060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506072600084815260200190815260200160002060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060726000848152602001908152602001600020600001549050935093915050565b600060736000838152602001908152602001600020600001549050919050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561085a57600080fd5b505af115801561086e573d6000803e3d6000fd5b505050506040513d602081101561088457600080fd5b81019080805190602001909291905050509050919050565b60008060006108e360606040519081016040528060185460001916600019168152602001601b54600019166000191681526020016003546000191660001916815250610f54565b15156108ee57600080fd5b83905083607060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156109db5761099084607060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110e790919063ffffffff16565b607060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a69565b607060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000607060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a81816070600001546110e790919063ffffffff16565b607060000181905550607060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492506070600001549150509250929050565b600060726000838152602001908152602001600020600001549050919050565b60006072600083815260200190815260200160002060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000607060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006073600083815260200190815260200160002060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610c7260606040519081016040528060185460001916600019168152602001601b54600019166000191681526020016016546000191660001916815250610f54565b1515610c7d57600080fd5b610c95836070600001546110cb90919063ffffffff16565b607060000181905550610cf383607060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110cb90919063ffffffff16565b607060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550607060010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060706000015490509250929050565b600080610dd260606040519081016040528060175460001916600019168152602001601854600019166000191681526020016003546000191660001916815250610f54565b1515610ddd57600080fd5b610e068460736000868152602001908152602001600020600001546110cb90919063ffffffff16565b6073600085815260200190815260200160002060000181905550610e86846073600086815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110cb90919063ffffffff16565b6073600085815260200190815260200160002060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506073600084815260200190815260200160002060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060736000848152602001908152602001600020600001549050935093915050565b600080600060039150600090505b818110156110c4576000600102600019168482600381101515610f8157fe5b6020020151600019161415610f95576110b7565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff8583600381101515610fe057fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561103f57600080fd5b505af1158015611053573d6000803e3d6000fd5b505050506040513d602081101561106957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156110b657600192506110c4565b5b8080600101915050610f62565b5050919050565b600081830190508281101515156110de57fe5b80905092915050565b60008282111515156110f557fe5b8183039050929150505600a165627a7a723058204984d03bc29350ad28e7bb346f710b080d44bfede2575719602b0865b16d419b0029",
  "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146100d557806317a129501461012c5780631eee01541461015757806329101470146101c95780633943380c1461020a5780633f83acff1461023d5780637478fbe3146102ae5780637b22ebce1461031657806393383c51146103575780639c89a0e2146103b8578063a5a9f5bb1461040f578063db4ecbc114610470578063ded86d68146104c7578063f2f80af41461052f575b600080fd5b3480156100e157600080fd5b506100ea6105a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101416105c6565b6040518082815260200191505060405180910390f35b34801561016357600080fd5b506101ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506105d3565b604051808381526020018281526020019250505060405180910390f35b3480156101d557600080fd5b506101f46004803603810190808035906020019092919050505061079a565b6040518082815260200191505060405180910390f35b34801561021657600080fd5b5061021f6107ba565b60405180826000191660001916815260200191505060405180910390f35b34801561024957600080fd5b5061026c60048036038101908080356000191690602001909291905050506107c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102ba57600080fd5b506102f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061089c565b604051808381526020018281526020019250505060405180910390f35b34801561032257600080fd5b5061034160048036038101908080359060200190929190505050610adf565b6040518082815260200191505060405180910390f35b34801561036357600080fd5b506103a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aff565b6040518082815260200191505060405180910390f35b3480156103c457600080fd5b506103f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5d565b6040518082815260200191505060405180910390f35b34801561041b57600080fd5b5061045a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ba9565b6040518082815260200191505060405180910390f35b34801561047c57600080fd5b50610485610c07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d357600080fd5b50610512600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c2d565b604051808381526020018281526020019250505060405180910390f35b34801561053b57600080fd5b50610584600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050610d8d565b604051808381526020018281526020019250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000607060000154905090565b60008061061860606040519081016040528060175460001916600019168152602001601854600019166000191681526020016003546000191660001916815250610f54565b151561062357600080fd5b61064c8460726000868152602001908152602001600020600001546110cb90919063ffffffff16565b60726000858152602001908152602001600020600001819055506106cc846072600086815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110cb90919063ffffffff16565b6072600085815260200190815260200160002060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506072600084815260200190815260200160002060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060726000848152602001908152602001600020600001549050935093915050565b600060736000838152602001908152602001600020600001549050919050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561085a57600080fd5b505af115801561086e573d6000803e3d6000fd5b505050506040513d602081101561088457600080fd5b81019080805190602001909291905050509050919050565b60008060006108e360606040519081016040528060185460001916600019168152602001601b54600019166000191681526020016003546000191660001916815250610f54565b15156108ee57600080fd5b83905083607060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156109db5761099084607060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110e790919063ffffffff16565b607060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a69565b607060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000607060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610a81816070600001546110e790919063ffffffff16565b607060000181905550607060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492506070600001549150509250929050565b600060726000838152602001908152602001600020600001549050919050565b60006072600083815260200190815260200160002060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000607060010160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006073600083815260200190815260200160002060010160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610c7260606040519081016040528060185460001916600019168152602001601b54600019166000191681526020016016546000191660001916815250610f54565b1515610c7d57600080fd5b610c95836070600001546110cb90919063ffffffff16565b607060000181905550610cf383607060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110cb90919063ffffffff16565b607060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550607060010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060706000015490509250929050565b600080610dd260606040519081016040528060175460001916600019168152602001601854600019166000191681526020016003546000191660001916815250610f54565b1515610ddd57600080fd5b610e068460736000868152602001908152602001600020600001546110cb90919063ffffffff16565b6073600085815260200190815260200160002060000181905550610e86846073600086815260200190815260200160002060010160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110cb90919063ffffffff16565b6073600085815260200190815260200160002060010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506073600084815260200190815260200160002060010160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915060736000848152602001908152602001600020600001549050935093915050565b600080600060039150600090505b818110156110c4576000600102600019168482600381101515610f8157fe5b6020020151600019161415610f95576110b7565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff8583600381101515610fe057fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561103f57600080fd5b505af1158015611053573d6000803e3d6000fd5b505050506040513d602081101561106957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156110b657600192506110c4565b5b8080600101915050610f62565b5050919050565b600081830190508281101515156110de57fe5b80905092915050565b60008282111515156110f557fe5b8183039050929150505600a165627a7a723058204984d03bc29350ad28e7bb346f710b080d44bfede2575719602b0865b16d419b0029",
  "sourceMap": "129:5174:55:-;;;177:3:3;169:12;;147:34;;;;;;;219:3;187:36;;;;;;;;;;;;;;;;;;;;230:65;;;;;;;;301:53;;;;;;;;360:61;;;;;;;;427:57;;;;;;;;490:55;;;;;;;;551:59;;;;;;;;643:1;617:27;;677:1;650:28;;713:1;684:30;;758:1;721:38;;800:1;765:36;;843:1;807:37;;851:52;;;;;;;;909:66;;;;;;;;981:80;;;;;;;;1097:28;;;;;;;;1131:62;;;;;;;;1199:56;;;;;;;;1261:42;;;;;;;;1309:56;;;;;;;;1371:65;;;;;;;;1442:46;;;;;;;;1494:60;;;;;;;;1560:66;;;;;;;;1632:40;;;;;;;;1678:60;;;;;;;;1744:54;;;;;;;;1804:52;;;;;;;;1888:46;;;;;;;;1940:54;;;;;;;;2000:60;;;;;;;;2066:66;;;;;;;;2164:44;;;;;;;;2214:60;;;;;;;;2280;;;;;;;;2346:62;;;;;;;;2414:58;;;;;;;;2478:60;;;;;;;;2544:58;;;;;;;;2608:56;;;;;;;;2670:60;;;;;;;;2736:70;;;;;;;;2812:78;;;;;;;;2897:36;;;;;;;;2939;;;;;;;;2981:40;;;;;;;;3047:1;3028:20;;;;;;;;;;;;;;;;;;;;3077:1;3054:24;;;;;;;;;;;;;;;;;;;;3103:1;3084:20;;;;;;;;;;;;;;;;;;;;3135:1;3110:26;;;;;;;;;;;;;;;;;;;;3170:7;3143:34;;3184:57;;;;;;;;3247:62;;;;;;;;3315:76;;;;;;;;3398:64;;;;;;;;3468:52;;;;;;;;3526:58;;;;;;;;3590:56;;;;;;;;3652:67;;;;;;;;3725:65;;;;;;;;3797:84;;;;;;;;3887:88;;;;;;;;3981:87;;;;;;;;4074:91;;;;;;;;4171:84;;;;;;;;4261:88;;;;;;;;4355:87;;;;;;;;4448:91;;;;;;;;4545:87;;;;;;;;4638:91;;;;;;;;4736:62;;;;;;;;4804:66;;;;;;;;4876:64;;;;;;;;4946:68;;;;;;;;5021:51;;;;;;;;5078:76;;;;;;;;5160:75;;;;;;;;5242:65;;;;;;;;5313:79;;;;;;;;5398:89;;;;;;;;5494:68;;;;;;;;5568:56;;;;;;;;5630:72;;;;;;;;5740:91;;;;;;;;5838:72;;;;;;;;5916:76;;;;;;;;5999:78;;;;;;;;6083:76;;;;;;;;6166:73;;;;;;;;6245:77;;;;;;;;6329;;;;;;;;6412:81;;;;;;;;6500:79;;;;;;;;6585:75;;;;;;;;6667:74;;;;;;;;6747;;;;;;;;6828:83;;;;;;;;6917:86;;;;;;;;7009;;;;;;;;7102:67;;;;;;;;7175;;;;;;;;7249:63;;;;;;;;7319:77;;;;;;;;7403:66;;;;;;;;7476:71;;;;;;;;7554:72;;;;;;;;7632:78;;;;;;;;7716:82;;;;;;;;7805:62;;;;;;;;7873:68;;;;;;;;812:120:55;8:9:-1;5:2;;;30:1;27;20:12;5:2;812:120:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;880:44;885:27;;914:9;880:4;;;:44;;;:::i;:::-;872:53;;;;;;;;812:120;129:5174;;1530:450:67;1617:13;1640:15;1675:9;1658:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1658:44:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1658:44:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1658:44:67;;;;;;;;;;;;;;;;1640:62;;1726:5;1712:19;;:10;:19;;;1708:268;;;1768:4;1741:16;;:32;;;;;;;;;;;;;;;;;;1792:9;1781:8;;:20;;;;;;;;;;;;;;;;;;1815:4;1809:3;:10;;;;;;;1852:8;;;;;;;;;;;1835:49;;;1885:3;;1890:16;;;;;;;;;;;1835:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1835:72:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1835:72:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1835:72:67;;;;;;;;;;;;;;;;1827:81;;;;;;;;1927:4;1916:15;;1708:268;;;1964:5;1953:16;;1708:268;1530:450;;;;;:::o;129:5174:55:-;;;;;;;",
  "deployedSourceMap": "129:5174:55:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:23:67;;;;;;;;;;;;;;;;;;;;;;;;;;;5155:146:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5155:146:55;;;;;;;;;;;;;;;;;;;;;;;1013:640;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1013:640:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3170:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3170:213:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;264:18:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:18:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:179:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4073:793:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4073:793:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2969:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2969:195:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2442:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2442:212:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4925:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4925:161:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2660:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2660:230:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:31:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:31:67;;;;;;;;;;;;;;;;;;;;;;;;;;;3446:559:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3446:559:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:703;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1659:703:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;;;;;;;;;;;;:::o;5155:146:55:-;5224:19;5269:15;:27;;;5255:41;;5155:146;:::o;1013:640::-;1132:17;1151:22;1197:78;;;;;;;;;;1213:19;;1197:78;;;;;;;;;;1234:26;;1197:78;;;;;;;;;;1262:11;;1197:78;;;;;;;;;:14;:78::i;:::-;1189:87;;;;;;;;1329:52;1374:6;1329:12;:28;1342:14;1329:28;;;;;;;;;;;:40;;;:44;;:52;;;;:::i;:::-;1286:12;:28;1299:14;1286:28;;;;;;;;;;;:40;;:95;;;;1444:62;1499:6;1444:12;:28;1457:14;1444:28;;;;;;;;;;;:36;;:50;1481:12;1444:50;;;;;;;;;;;;;;;;:54;;:62;;;;:::i;:::-;1391:12;:28;1404:14;1391:28;;;;;;;;;;;:36;;:50;1428:12;1391:50;;;;;;;;;;;;;;;:115;;;;1529:12;:28;1542:14;1529:28;;;;;;;;;;;:36;;:50;1566:12;1529:50;;;;;;;;;;;;;;;;1517:62;;1606:12;:28;1619:14;1606:28;;;;;;;;;;;:40;;;1589:57;;1013:640;;;;;;:::o;3170:213::-;3278:19;3327:21;:37;3349:14;3327:37;;;;;;;;;;;:49;;;3313:63;;3170:213;;;:::o;264:18:67:-;;;;:::o;2380:179::-;2470:17;2526:8;;;;;;;;;;;2509:39;;;2549:4;2509:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:45:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:45:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:45:67;;;;;;;;;;;;;;;;2497:57;;2380:179;;;:::o;4073:793:55:-;4169:17;4188:19;4329:17;4231:87;;;;;;;;;;4247:26;;4231:87;;;;;;;;;;4275:28;;4231:87;;;;;;;;;;4305:11;;4231:87;;;;;;;;;:14;:87::i;:::-;4223:96;;;;;;;;4349:6;4329:26;;4409:6;4369:15;:23;;:37;4393:12;4369:37;;;;;;;;;;;;;;;;:46;4365:301;;;4471:49;4513:6;4471:15;:23;;:37;4495:12;4471:37;;;;;;;;;;;;;;;;:41;;:49;;;;:::i;:::-;4431:15;:23;;:37;4455:12;4431:37;;;;;;;;;;;;;;;:89;;;;4365:301;;;4563:15;:23;;:37;4587:12;4563:37;;;;;;;;;;;;;;;;4551:49;;4654:1;4614:15;:23;;:37;4638:12;4614:37;;;;;;;;;;;;;;;:41;;;;4365:301;4706:42;4738:9;4706:15;:27;;;:31;;:42;;;;:::i;:::-;4676:15;:27;;:72;;;;4771:15;:23;;:37;4795:12;4771:37;;;;;;;;;;;;;;;;4759:49;;4832:15;:27;;;4818:41;;4073:793;;;;;;:::o;2969:195::-;3068:19;3117:12;:28;3130:14;3117:28;;;;;;;;;;;:40;;;3103:54;;2969:195;;;:::o;2442:212::-;2558:14;2597:12;:28;2610:14;2597:28;;;;;;;;;;;:36;;:50;2634:12;2597:50;;;;;;;;;;;;;;;;2588:59;;2442:212;;;;:::o;4925:161::-;5009:14;5044:15;:23;;:37;5068:12;5044:37;;;;;;;;;;;;;;;;5035:46;;4925:161;;;:::o;2660:230::-;2785:14;2824:21;:37;2846:14;2824:37;;;;;;;;;;;:45;;:59;2870:12;2824:59;;;;;;;;;;;;;;;;2815:68;;2660:230;;;;:::o;344:31:67:-;;;;;;;;;;;;;:::o;3446:559:55:-;3544:17;3563:19;3606:102;;;;;;;;;;3622:26;;3606:102;;;;;;;;;;3650:28;;3606:102;;;;;;;;;;3680:26;;3606:102;;;;;;;;;:14;:102::i;:::-;3598:111;;;;;;;;3749:39;3781:6;3749:15;:27;;;:31;;:39;;;;:::i;:::-;3719:15;:27;;:69;;;;3838:49;3880:6;3838:15;:23;;:37;3862:12;3838:37;;;;;;;;;;;;;;;;:41;;:49;;;;:::i;:::-;3798:15;:23;;:37;3822:12;3798:37;;;;;;;;;;;;;;;:89;;;;3910:15;:23;;:37;3934:12;3910:37;;;;;;;;;;;;;;;;3898:49;;3971:15;:27;;;3957:41;;3446:559;;;;;:::o;1659:703::-;1787:17;1806:22;1852:78;;;;;;;;;;1868:19;;1852:78;;;;;;;;;;1889:26;;1852:78;;;;;;;;;;1917:11;;1852:78;;;;;;;;;:14;:78::i;:::-;1844:87;;;;;;;;1993:61;2047:6;1993:21;:37;2015:14;1993:37;;;;;;;;;;;:49;;;:53;;:61;;;;:::i;:::-;1941:21;:37;1963:14;1941:37;;;;;;;;;;;:49;;:113;;;;2126:71;2190:6;2126:21;:37;2148:14;2126:37;;;;;;;;;;;:45;;:59;2172:12;2126:59;;;;;;;;;;;;;;;;:63;;:71;;;;:::i;:::-;2064:21;:37;2086:14;2064:37;;;;;;;;;;;:45;;:59;2110:12;2064:59;;;;;;;;;;;;;;;:133;;;;2220:21;:37;2242:14;2220:37;;;;;;;;;;;:45;;:59;2266:12;2220:59;;;;;;;;;;;;;;;;2208:71;;2306:21;:37;2328:14;2306:37;;;;;;;;;;;:49;;;2289:66;;1659:703;;;;;;:::o;881:350:67:-;951:12;971:10;1012:9;984:17;971:30;;1024:1;1012:13;;1007:220;1031:2;1027:1;:6;1007:220;;;1077:3;1069:12;;1052:29;;;:10;1063:1;1052:13;;;;;;;;;;;;;:29;;;;1048:43;;;1083:8;;1048:43;1134:8;;;;;;;;;;;1117:39;;;1157:10;1168:1;1157:13;;;;;;;;;;;;;1117:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1117:54:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1117:54:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1117:54:67;;;;;;;;;;;;;;;;1103:68;;:10;:68;;;1099:122;;;1193:4;1183:14;;1207:5;;1099:122;1007:220;1035:3;;;;;;;1007:220;;;881:350;;;;;:::o;1238:128:84:-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o;1060:116::-;1120:7;1148:2;1142;:8;;1135:16;;;;;;1169:2;1164;:7;1157:14;;1060:116;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"@digix/cacp-contracts-dao/contracts/ResolverClient.sol\";\nimport \"../common/DaoConstants.sol\";\n\ncontract DaoPointsStorage is ResolverClient, DaoConstants {\n\n    // struct for a non-transferrable token\n    struct Token {\n        uint256 totalSupply;\n        mapping (address => uint256) balance;\n    }\n\n    // the reputation point token\n    // since reputation is cumulative, we only need to store one value\n    Token reputationPoint;\n\n    // since quarter points are specific to quarters, we need a mapping from\n    // quarter number to the quarter point token for that quarter\n    mapping (uint256 => Token) quarterPoint;\n\n    // the same is the case with quarter moderator points\n    // these are specific to quarters\n    mapping (uint256 => Token) quarterModeratorPoint;\n\n    constructor(address _resolver)\n        public\n    {\n        require(init(CONTRACT_STORAGE_DAO_POINTS, _resolver));\n    }\n\n    /// @notice add quarter points for a _participant for a _quarterNumber\n    function addQuarterPoint(address _participant, uint256 _point, uint256 _quarterNumber)\n        public\n        returns (uint256 _newPoint, uint256 _newTotalPoint)\n    {\n        require(sender_is_from([CONTRACT_DAO_VOTING, CONTRACT_DAO_VOTING_CLAIMS, EMPTY_BYTES]));\n        quarterPoint[_quarterNumber].totalSupply = quarterPoint[_quarterNumber].totalSupply.add(_point);\n        quarterPoint[_quarterNumber].balance[_participant] = quarterPoint[_quarterNumber].balance[_participant].add(_point);\n\n        _newPoint = quarterPoint[_quarterNumber].balance[_participant];\n        _newTotalPoint = quarterPoint[_quarterNumber].totalSupply;\n    }\n\n    function addModeratorQuarterPoint(address _participant, uint256 _point, uint256 _quarterNumber)\n        public\n        returns (uint256 _newPoint, uint256 _newTotalPoint)\n    {\n        require(sender_is_from([CONTRACT_DAO_VOTING, CONTRACT_DAO_VOTING_CLAIMS, EMPTY_BYTES]));\n        quarterModeratorPoint[_quarterNumber].totalSupply = quarterModeratorPoint[_quarterNumber].totalSupply.add(_point);\n        quarterModeratorPoint[_quarterNumber].balance[_participant] = quarterModeratorPoint[_quarterNumber].balance[_participant].add(_point);\n\n        _newPoint = quarterModeratorPoint[_quarterNumber].balance[_participant];\n        _newTotalPoint = quarterModeratorPoint[_quarterNumber].totalSupply;\n    }\n\n    /// @notice get quarter points for a _participant in a _quarterNumber\n    function getQuarterPoint(address _participant, uint256 _quarterNumber)\n        public\n        view\n        returns (uint256 _point)\n    {\n        _point = quarterPoint[_quarterNumber].balance[_participant];\n    }\n\n    function getQuarterModeratorPoint(address _participant, uint256 _quarterNumber)\n        public\n        view\n        returns (uint256 _point)\n    {\n        _point = quarterModeratorPoint[_quarterNumber].balance[_participant];\n    }\n\n    /// @notice get total quarter points for a particular _quarterNumber\n    function getTotalQuarterPoint(uint256 _quarterNumber)\n        public\n        view\n        returns (uint256 _totalPoint)\n    {\n        _totalPoint = quarterPoint[_quarterNumber].totalSupply;\n    }\n\n    function getTotalQuarterModeratorPoint(uint256 _quarterNumber)\n        public\n        view\n        returns (uint256 _totalPoint)\n    {\n        _totalPoint = quarterModeratorPoint[_quarterNumber].totalSupply;\n    }\n\n    /// @notice add reputation points for a _participant\n    function increaseReputation(address _participant, uint256 _point)\n        public\n        returns (uint256 _newPoint, uint256 _totalPoint)\n    {\n        require(sender_is_from([CONTRACT_DAO_VOTING_CLAIMS, CONTRACT_DAO_REWARDS_MANAGER, CONTRACT_DAO_STAKE_LOCKING]));\n        reputationPoint.totalSupply = reputationPoint.totalSupply.add(_point);\n        reputationPoint.balance[_participant] = reputationPoint.balance[_participant].add(_point);\n\n        _newPoint = reputationPoint.balance[_participant];\n        _totalPoint = reputationPoint.totalSupply;\n    }\n\n    /// @notice subtract reputation points for a _participant\n    function reduceReputation(address _participant, uint256 _point)\n        public\n        returns (uint256 _newPoint, uint256 _totalPoint)\n    {\n        require(sender_is_from([CONTRACT_DAO_VOTING_CLAIMS, CONTRACT_DAO_REWARDS_MANAGER, EMPTY_BYTES]));\n        uint256 _toDeduct = _point;\n        if (reputationPoint.balance[_participant] > _point) {\n            reputationPoint.balance[_participant] = reputationPoint.balance[_participant].sub(_point);\n        } else {\n            _toDeduct = reputationPoint.balance[_participant];\n            reputationPoint.balance[_participant] = 0;\n        }\n\n        reputationPoint.totalSupply = reputationPoint.totalSupply.sub(_toDeduct);\n\n        _newPoint = reputationPoint.balance[_participant];\n        _totalPoint = reputationPoint.totalSupply;\n    }\n\n  /// @notice get reputation points for a _participant\n  function getReputation(address _participant)\n      public\n      view\n      returns (uint256 _point)\n  {\n      _point = reputationPoint.balance[_participant];\n  }\n\n  /// @notice get total reputation points distributed in the dao\n  function getTotalReputation()\n      public\n      view\n      returns (uint256 _totalPoint)\n  {\n      _totalPoint = reputationPoint.totalSupply;\n  }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoPointsStorage.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoPointsStorage.sol",
    "exportedSymbols": {
      "DaoPointsStorage": [
        14496
      ]
    },
    "id": 14497,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 14085,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:55"
      },
      {
        "absolutePath": "@digix/cacp-contracts-dao/contracts/ResolverClient.sol",
        "file": "@digix/cacp-contracts-dao/contracts/ResolverClient.sol",
        "id": 14086,
        "nodeType": "ImportDirective",
        "scope": 14497,
        "sourceUnit": 18629,
        "src": "26:64:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoConstants.sol",
        "file": "../common/DaoConstants.sol",
        "id": 14087,
        "nodeType": "ImportDirective",
        "scope": 14497,
        "sourceUnit": 1630,
        "src": "91:36:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 14088,
              "name": "ResolverClient",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 18628,
              "src": "158:14:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ResolverClient_$18628",
                "typeString": "contract ResolverClient"
              }
            },
            "id": 14089,
            "nodeType": "InheritanceSpecifier",
            "src": "158:14:55"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 14090,
              "name": "DaoConstants",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1629,
              "src": "174:12:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoConstants_$1629",
                "typeString": "contract DaoConstants"
              }
            },
            "id": 14091,
            "nodeType": "InheritanceSpecifier",
            "src": "174:12:55"
          }
        ],
        "contractDependencies": [
          1629,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 14496,
        "linearizedBaseContracts": [
          14496,
          1629,
          18628
        ],
        "name": "DaoPointsStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "DaoPointsStorage.Token",
            "id": 14098,
            "members": [
              {
                "constant": false,
                "id": 14093,
                "name": "totalSupply",
                "nodeType": "VariableDeclaration",
                "scope": 14098,
                "src": "261:19:55",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 14092,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "261:7:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 14097,
                "name": "balance",
                "nodeType": "VariableDeclaration",
                "scope": 14098,
                "src": "290:36:55",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 14096,
                  "keyType": {
                    "id": 14094,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "299:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "290:28:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 14095,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "310:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Token",
            "nodeType": "StructDefinition",
            "scope": 14496,
            "src": "238:95:55",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 14100,
            "name": "reputationPoint",
            "nodeType": "VariableDeclaration",
            "scope": 14496,
            "src": "444:21:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Token_$14098_storage",
              "typeString": "struct DaoPointsStorage.Token"
            },
            "typeName": {
              "contractScope": null,
              "id": 14099,
              "name": "Token",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 14098,
              "src": "444:5:55",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Token_$14098_storage_ptr",
                "typeString": "struct DaoPointsStorage.Token"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 14104,
            "name": "quarterPoint",
            "nodeType": "VariableDeclaration",
            "scope": 14496,
            "src": "615:39:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token)"
            },
            "typeName": {
              "id": 14103,
              "keyType": {
                "id": 14101,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "624:7:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "615:26:55",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                "typeString": "mapping(uint256 => struct DaoPointsStorage.Token)"
              },
              "valueType": {
                "contractScope": null,
                "id": 14102,
                "name": "Token",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 14098,
                "src": "635:5:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Token_$14098_storage_ptr",
                  "typeString": "struct DaoPointsStorage.Token"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 14108,
            "name": "quarterModeratorPoint",
            "nodeType": "VariableDeclaration",
            "scope": 14496,
            "src": "757:48:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token)"
            },
            "typeName": {
              "id": 14107,
              "keyType": {
                "id": 14105,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "766:7:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "757:26:55",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                "typeString": "mapping(uint256 => struct DaoPointsStorage.Token)"
              },
              "valueType": {
                "contractScope": null,
                "id": 14106,
                "name": "Token",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 14098,
                "src": "777:5:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Token_$14098_storage_ptr",
                  "typeString": "struct DaoPointsStorage.Token"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 14120,
              "nodeType": "Block",
              "src": "862:70:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 14115,
                            "name": "CONTRACT_STORAGE_DAO_POINTS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1409,
                            "src": "885:27:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 14116,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14110,
                            "src": "914:9:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 14114,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "880:4:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 14117,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "880:44:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14113,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "872:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "872:53:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14119,
                  "nodeType": "ExpressionStatement",
                  "src": "872:53:55"
                }
              ]
            },
            "documentation": null,
            "id": 14121,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14111,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14110,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 14121,
                  "src": "824:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14109,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "824:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "823:19:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14112,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "862:0:55"
            },
            "scope": 14496,
            "src": "812:120:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14189,
              "nodeType": "Block",
              "src": "1179:474:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 14136,
                                "name": "CONTRACT_DAO_VOTING",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1355,
                                "src": "1213:19:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14137,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "1234:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14138,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "1262:11:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 14139,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "1212:62:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 14135,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "1197:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 14140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1197:78:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14134,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1189:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1189:87:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14142,
                  "nodeType": "ExpressionStatement",
                  "src": "1189:87:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14143,
                          "name": "quarterPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14104,
                          "src": "1286:12:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14145,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14144,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14127,
                          "src": "1299:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1286:28:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14146,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "1286:40:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14152,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14125,
                          "src": "1374:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 14147,
                              "name": "quarterPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14104,
                              "src": "1329:12:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                                "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                              }
                            },
                            "id": 14149,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14148,
                              "name": "_quarterNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14127,
                              "src": "1342:14:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1329:28:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Token_$14098_storage",
                              "typeString": "struct DaoPointsStorage.Token storage ref"
                            }
                          },
                          "id": 14150,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "totalSupply",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14093,
                          "src": "1329:40:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "1329:44:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1329:52:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1286:95:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14155,
                  "nodeType": "ExpressionStatement",
                  "src": "1286:95:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14156,
                            "name": "quarterPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14104,
                            "src": "1391:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14158,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14157,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14127,
                            "src": "1404:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1391:28:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14159,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "1391:36:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14161,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14160,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14123,
                        "src": "1428:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1391:50:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14169,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14125,
                          "src": "1499:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 14162,
                                "name": "quarterPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14104,
                                "src": "1444:12:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                                  "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                                }
                              },
                              "id": 14164,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 14163,
                                "name": "_quarterNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14127,
                                "src": "1457:14:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1444:28:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Token_$14098_storage",
                                "typeString": "struct DaoPointsStorage.Token storage ref"
                              }
                            },
                            "id": 14165,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 14097,
                            "src": "1444:36:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 14167,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14166,
                            "name": "_participant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14123,
                            "src": "1481:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1444:50:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "1444:54:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1444:62:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1391:115:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14172,
                  "nodeType": "ExpressionStatement",
                  "src": "1391:115:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14173,
                      "name": "_newPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14130,
                      "src": "1517:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14174,
                            "name": "quarterPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14104,
                            "src": "1529:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14176,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14175,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14127,
                            "src": "1542:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1529:28:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14177,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "1529:36:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14179,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14178,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14123,
                        "src": "1566:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1529:50:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1517:62:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14181,
                  "nodeType": "ExpressionStatement",
                  "src": "1517:62:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14187,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14182,
                      "name": "_newTotalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14132,
                      "src": "1589:14:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14183,
                          "name": "quarterPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14104,
                          "src": "1606:12:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14185,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14184,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14127,
                          "src": "1619:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1606:28:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14186,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "1606:40:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1589:57:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14188,
                  "nodeType": "ExpressionStatement",
                  "src": "1589:57:55"
                }
              ]
            },
            "documentation": "@notice add quarter points for a _participant for a _quarterNumber",
            "id": 14190,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addQuarterPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14123,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1038:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14122,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1038:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14125,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1060:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14124,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1060:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14127,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1076:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14126,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1076:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1037:62:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14133,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14130,
                  "name": "_newPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1132:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14129,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1132:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14132,
                  "name": "_newTotalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1151:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14131,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1151:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1131:43:55"
            },
            "scope": 14496,
            "src": "1013:640:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14258,
              "nodeType": "Block",
              "src": "1834:528:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 14205,
                                "name": "CONTRACT_DAO_VOTING",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1355,
                                "src": "1868:19:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14206,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "1889:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14207,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "1917:11:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 14208,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "1867:62:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 14204,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "1852:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 14209,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1852:78:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14203,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1844:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14210,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1844:87:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14211,
                  "nodeType": "ExpressionStatement",
                  "src": "1844:87:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14212,
                          "name": "quarterModeratorPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14108,
                          "src": "1941:21:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14214,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14213,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14196,
                          "src": "1963:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1941:37:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14215,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "1941:49:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14221,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14194,
                          "src": "2047:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 14216,
                              "name": "quarterModeratorPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14108,
                              "src": "1993:21:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                                "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                              }
                            },
                            "id": 14218,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14217,
                              "name": "_quarterNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14196,
                              "src": "2015:14:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1993:37:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Token_$14098_storage",
                              "typeString": "struct DaoPointsStorage.Token storage ref"
                            }
                          },
                          "id": 14219,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "totalSupply",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14093,
                          "src": "1993:49:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14220,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "1993:53:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14222,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1993:61:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1941:113:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14224,
                  "nodeType": "ExpressionStatement",
                  "src": "1941:113:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14240,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14225,
                            "name": "quarterModeratorPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14108,
                            "src": "2064:21:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14227,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14226,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14196,
                            "src": "2086:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2064:37:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14228,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "2064:45:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14230,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14229,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14192,
                        "src": "2110:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2064:59:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14238,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14194,
                          "src": "2190:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 14231,
                                "name": "quarterModeratorPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14108,
                                "src": "2126:21:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                                  "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                                }
                              },
                              "id": 14233,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 14232,
                                "name": "_quarterNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14196,
                                "src": "2148:14:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2126:37:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Token_$14098_storage",
                                "typeString": "struct DaoPointsStorage.Token storage ref"
                              }
                            },
                            "id": 14234,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 14097,
                            "src": "2126:45:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 14236,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14235,
                            "name": "_participant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14192,
                            "src": "2172:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2126:59:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14237,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "2126:63:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14239,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2126:71:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2064:133:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14241,
                  "nodeType": "ExpressionStatement",
                  "src": "2064:133:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14249,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14242,
                      "name": "_newPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14199,
                      "src": "2208:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14243,
                            "name": "quarterModeratorPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14108,
                            "src": "2220:21:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14245,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14244,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14196,
                            "src": "2242:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2220:37:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14246,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "2220:45:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14248,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14247,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14192,
                        "src": "2266:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2220:59:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2208:71:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14250,
                  "nodeType": "ExpressionStatement",
                  "src": "2208:71:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14251,
                      "name": "_newTotalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14201,
                      "src": "2289:14:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14252,
                          "name": "quarterModeratorPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14108,
                          "src": "2306:21:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14254,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14253,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14196,
                          "src": "2328:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2306:37:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14255,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "2306:49:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2289:66:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14257,
                  "nodeType": "ExpressionStatement",
                  "src": "2289:66:55"
                }
              ]
            },
            "documentation": null,
            "id": 14259,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addModeratorQuarterPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14192,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1693:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14191,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1693:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14194,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1715:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14193,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1715:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14196,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1731:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14195,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1731:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1692:62:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14199,
                  "name": "_newPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1787:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14198,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1787:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14201,
                  "name": "_newTotalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1806:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14200,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1806:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1786:43:55"
            },
            "scope": 14496,
            "src": "1659:703:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14277,
              "nodeType": "Block",
              "src": "2578:76:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14275,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14268,
                      "name": "_point",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14266,
                      "src": "2588:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14269,
                            "name": "quarterPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14104,
                            "src": "2597:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14271,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14270,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14263,
                            "src": "2610:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2597:28:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14272,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "2597:36:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14274,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14273,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14261,
                        "src": "2634:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2597:50:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2588:59:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14276,
                  "nodeType": "ExpressionStatement",
                  "src": "2588:59:55"
                }
              ]
            },
            "documentation": "@notice get quarter points for a _participant in a _quarterNumber",
            "id": 14278,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getQuarterPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14261,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14278,
                  "src": "2467:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14260,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2467:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14263,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14278,
                  "src": "2489:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14262,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2489:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2466:46:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14267,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14266,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14278,
                  "src": "2558:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14265,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2558:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2557:16:55"
            },
            "scope": 14496,
            "src": "2442:212:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14296,
              "nodeType": "Block",
              "src": "2805:85:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14287,
                      "name": "_point",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14285,
                      "src": "2815:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14288,
                            "name": "quarterModeratorPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14108,
                            "src": "2824:21:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14290,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14289,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14282,
                            "src": "2846:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2824:37:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14291,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "2824:45:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14293,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14292,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14280,
                        "src": "2870:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2824:59:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2815:68:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14295,
                  "nodeType": "ExpressionStatement",
                  "src": "2815:68:55"
                }
              ]
            },
            "documentation": null,
            "id": 14297,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getQuarterModeratorPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14280,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14297,
                  "src": "2694:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14279,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2694:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14282,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14297,
                  "src": "2716:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14281,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2716:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2693:46:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14286,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14285,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14297,
                  "src": "2785:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14284,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2785:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2784:16:55"
            },
            "scope": 14496,
            "src": "2660:230:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14311,
              "nodeType": "Block",
              "src": "3093:71:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14304,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14302,
                      "src": "3103:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14305,
                          "name": "quarterPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14104,
                          "src": "3117:12:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14307,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14306,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14299,
                          "src": "3130:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3117:28:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14308,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "3117:40:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3103:54:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14310,
                  "nodeType": "ExpressionStatement",
                  "src": "3103:54:55"
                }
              ]
            },
            "documentation": "@notice get total quarter points for a particular _quarterNumber",
            "id": 14312,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTotalQuarterPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14300,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14299,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14312,
                  "src": "2999:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14298,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2999:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2998:24:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14303,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14302,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14312,
                  "src": "3068:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14301,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3068:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3067:21:55"
            },
            "scope": 14496,
            "src": "2969:195:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14326,
              "nodeType": "Block",
              "src": "3303:80:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14319,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14317,
                      "src": "3313:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14320,
                          "name": "quarterModeratorPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14108,
                          "src": "3327:21:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14322,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14321,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14314,
                          "src": "3349:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3327:37:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14323,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "3327:49:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3313:63:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14325,
                  "nodeType": "ExpressionStatement",
                  "src": "3313:63:55"
                }
              ]
            },
            "documentation": null,
            "id": 14327,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTotalQuarterModeratorPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14315,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14314,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14327,
                  "src": "3209:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14313,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3209:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3208:24:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14317,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14327,
                  "src": "3278:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14316,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3278:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3277:21:55"
            },
            "scope": 14496,
            "src": "3170:213:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14383,
              "nodeType": "Block",
              "src": "3588:417:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 14340,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "3622:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14341,
                                "name": "CONTRACT_DAO_REWARDS_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1367,
                                "src": "3650:28:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14342,
                                "name": "CONTRACT_DAO_STAKE_LOCKING",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1352,
                                "src": "3680:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 14343,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "3621:86:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 14339,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "3606:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 14344,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3606:102:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14338,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3598:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14345,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3598:111:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14346,
                  "nodeType": "ExpressionStatement",
                  "src": "3598:111:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14347,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "3719:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14349,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "3719:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14353,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14331,
                          "src": "3781:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 14350,
                            "name": "reputationPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14100,
                            "src": "3749:15:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Token_$14098_storage",
                              "typeString": "struct DaoPointsStorage.Token storage ref"
                            }
                          },
                          "id": 14351,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "totalSupply",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14093,
                          "src": "3749:27:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "3749:31:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14354,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3749:39:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3719:69:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14356,
                  "nodeType": "ExpressionStatement",
                  "src": "3719:69:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14369,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14357,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "3798:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14360,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "3798:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14361,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14359,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14329,
                        "src": "3822:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3798:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14367,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14331,
                          "src": "3880:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 14362,
                              "name": "reputationPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14100,
                              "src": "3838:15:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Token_$14098_storage",
                                "typeString": "struct DaoPointsStorage.Token storage ref"
                              }
                            },
                            "id": 14363,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 14097,
                            "src": "3838:23:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 14365,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14364,
                            "name": "_participant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14329,
                            "src": "3862:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3838:37:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14366,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "3838:41:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14368,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3838:49:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3798:89:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14370,
                  "nodeType": "ExpressionStatement",
                  "src": "3798:89:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14371,
                      "name": "_newPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14334,
                      "src": "3898:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14372,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "3910:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14373,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "3910:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14375,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14374,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14329,
                        "src": "3934:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3910:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3898:49:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14377,
                  "nodeType": "ExpressionStatement",
                  "src": "3898:49:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14381,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14378,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14336,
                      "src": "3957:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14379,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "3971:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14380,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "3971:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3957:41:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14382,
                  "nodeType": "ExpressionStatement",
                  "src": "3957:41:55"
                }
              ]
            },
            "documentation": "@notice add reputation points for a _participant",
            "id": 14384,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "increaseReputation",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14329,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14384,
                  "src": "3474:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14328,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3474:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14331,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14384,
                  "src": "3496:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14330,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3496:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3473:38:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14337,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14334,
                  "name": "_newPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14384,
                  "src": "3544:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14333,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3544:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14336,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14384,
                  "src": "3563:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14335,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3563:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3543:40:55"
            },
            "scope": 14496,
            "src": "3446:559:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14468,
              "nodeType": "Block",
              "src": "4213:653:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 14397,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "4247:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14398,
                                "name": "CONTRACT_DAO_REWARDS_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1367,
                                "src": "4275:28:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14399,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "4305:11:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 14400,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4246:71:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 14396,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "4231:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 14401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4231:87:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14395,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4223:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4223:96:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14403,
                  "nodeType": "ExpressionStatement",
                  "src": "4223:96:55"
                },
                {
                  "assignments": [
                    14405
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 14405,
                      "name": "_toDeduct",
                      "nodeType": "VariableDeclaration",
                      "scope": 14469,
                      "src": "4329:17:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 14404,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4329:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 14407,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 14406,
                    "name": "_point",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14388,
                    "src": "4349:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4329:26:55"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 14413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14408,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "4369:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14409,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "4369:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14411,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14410,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14386,
                        "src": "4393:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4369:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 14412,
                      "name": "_point",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14388,
                      "src": "4409:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4369:46:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 14444,
                    "nodeType": "Block",
                    "src": "4537:129:55",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 14434,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 14429,
                            "name": "_toDeduct",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14405,
                            "src": "4551:9:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 14430,
                                "name": "reputationPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14100,
                                "src": "4563:15:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Token_$14098_storage",
                                  "typeString": "struct DaoPointsStorage.Token storage ref"
                                }
                              },
                              "id": 14431,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 14097,
                              "src": "4563:23:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 14433,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14432,
                              "name": "_participant",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14386,
                              "src": "4587:12:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4563:37:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4551:49:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14435,
                        "nodeType": "ExpressionStatement",
                        "src": "4551:49:55"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 14442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 14436,
                                "name": "reputationPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14100,
                                "src": "4614:15:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Token_$14098_storage",
                                  "typeString": "struct DaoPointsStorage.Token storage ref"
                                }
                              },
                              "id": 14439,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 14097,
                              "src": "4614:23:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 14440,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14438,
                              "name": "_participant",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14386,
                              "src": "4638:12:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4614:37:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 14441,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4654:1:55",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4614:41:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14443,
                        "nodeType": "ExpressionStatement",
                        "src": "4614:41:55"
                      }
                    ]
                  },
                  "id": 14445,
                  "nodeType": "IfStatement",
                  "src": "4365:301:55",
                  "trueBody": {
                    "id": 14428,
                    "nodeType": "Block",
                    "src": "4417:114:55",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 14426,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 14414,
                                "name": "reputationPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14100,
                                "src": "4431:15:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Token_$14098_storage",
                                  "typeString": "struct DaoPointsStorage.Token storage ref"
                                }
                              },
                              "id": 14417,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 14097,
                              "src": "4431:23:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 14418,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14416,
                              "name": "_participant",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14386,
                              "src": "4455:12:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4431:37:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 14424,
                                "name": "_point",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14388,
                                "src": "4513:6:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 14419,
                                    "name": "reputationPoint",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 14100,
                                    "src": "4471:15:55",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Token_$14098_storage",
                                      "typeString": "struct DaoPointsStorage.Token storage ref"
                                    }
                                  },
                                  "id": 14420,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "balance",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 14097,
                                  "src": "4471:23:55",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 14422,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 14421,
                                  "name": "_participant",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 14386,
                                  "src": "4495:12:55",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4471:37:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 14423,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25586,
                              "src": "4471:41:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 14425,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4471:49:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4431:89:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14427,
                        "nodeType": "ExpressionStatement",
                        "src": "4431:89:55"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14446,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "4676:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14448,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "4676:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14452,
                          "name": "_toDeduct",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14405,
                          "src": "4738:9:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 14449,
                            "name": "reputationPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14100,
                            "src": "4706:15:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Token_$14098_storage",
                              "typeString": "struct DaoPointsStorage.Token storage ref"
                            }
                          },
                          "id": 14450,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "totalSupply",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14093,
                          "src": "4706:27:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14451,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25586,
                        "src": "4706:31:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14453,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4706:42:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4676:72:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14455,
                  "nodeType": "ExpressionStatement",
                  "src": "4676:72:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14456,
                      "name": "_newPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14391,
                      "src": "4759:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14457,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "4771:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14458,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "4771:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14460,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14459,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14386,
                        "src": "4795:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4771:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4759:49:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14462,
                  "nodeType": "ExpressionStatement",
                  "src": "4759:49:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14466,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14463,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14393,
                      "src": "4818:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14464,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "4832:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14465,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "4832:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4818:41:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14467,
                  "nodeType": "ExpressionStatement",
                  "src": "4818:41:55"
                }
              ]
            },
            "documentation": "@notice subtract reputation points for a _participant",
            "id": 14469,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "reduceReputation",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14386,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14469,
                  "src": "4099:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14385,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4099:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14388,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14469,
                  "src": "4121:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14387,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4121:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4098:38:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14394,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14391,
                  "name": "_newPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14469,
                  "src": "4169:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14390,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4169:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14393,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14469,
                  "src": "4188:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14392,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4188:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4168:40:55"
            },
            "scope": 14496,
            "src": "4073:793:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14483,
              "nodeType": "Block",
              "src": "5027:59:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14481,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14476,
                      "name": "_point",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14474,
                      "src": "5035:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14477,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "5044:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14478,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "5044:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14480,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14479,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14471,
                        "src": "5068:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5044:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5035:46:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14482,
                  "nodeType": "ExpressionStatement",
                  "src": "5035:46:55"
                }
              ]
            },
            "documentation": "@notice get reputation points for a _participant",
            "id": 14484,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getReputation",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14472,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14471,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14484,
                  "src": "4948:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14470,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4948:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4947:22:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14474,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14484,
                  "src": "5009:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14473,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5009:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5008:16:55"
            },
            "scope": 14496,
            "src": "4925:161:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14494,
              "nodeType": "Block",
              "src": "5247:54:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14489,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14487,
                      "src": "5255:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14490,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "5269:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14491,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "5269:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5255:41:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14493,
                  "nodeType": "ExpressionStatement",
                  "src": "5255:41:55"
                }
              ]
            },
            "documentation": "@notice get total reputation points distributed in the dao",
            "id": 14495,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTotalReputation",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14485,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5182:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14487,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14495,
                  "src": "5224:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14486,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5224:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5223:21:55"
            },
            "scope": 14496,
            "src": "5155:146:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 14497,
        "src": "129:5174:55"
      }
    ],
    "src": "0:5304:55"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoPointsStorage.sol",
    "exportedSymbols": {
      "DaoPointsStorage": [
        14496
      ]
    },
    "id": 14497,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 14085,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:55"
      },
      {
        "absolutePath": "@digix/cacp-contracts-dao/contracts/ResolverClient.sol",
        "file": "@digix/cacp-contracts-dao/contracts/ResolverClient.sol",
        "id": 14086,
        "nodeType": "ImportDirective",
        "scope": 14497,
        "sourceUnit": 18629,
        "src": "26:64:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoConstants.sol",
        "file": "../common/DaoConstants.sol",
        "id": 14087,
        "nodeType": "ImportDirective",
        "scope": 14497,
        "sourceUnit": 1630,
        "src": "91:36:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 14088,
              "name": "ResolverClient",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 18628,
              "src": "158:14:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ResolverClient_$18628",
                "typeString": "contract ResolverClient"
              }
            },
            "id": 14089,
            "nodeType": "InheritanceSpecifier",
            "src": "158:14:55"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 14090,
              "name": "DaoConstants",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1629,
              "src": "174:12:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoConstants_$1629",
                "typeString": "contract DaoConstants"
              }
            },
            "id": 14091,
            "nodeType": "InheritanceSpecifier",
            "src": "174:12:55"
          }
        ],
        "contractDependencies": [
          1629,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 14496,
        "linearizedBaseContracts": [
          14496,
          1629,
          18628
        ],
        "name": "DaoPointsStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "DaoPointsStorage.Token",
            "id": 14098,
            "members": [
              {
                "constant": false,
                "id": 14093,
                "name": "totalSupply",
                "nodeType": "VariableDeclaration",
                "scope": 14098,
                "src": "261:19:55",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 14092,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "261:7:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 14097,
                "name": "balance",
                "nodeType": "VariableDeclaration",
                "scope": 14098,
                "src": "290:36:55",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 14096,
                  "keyType": {
                    "id": 14094,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "299:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "290:28:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 14095,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "310:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Token",
            "nodeType": "StructDefinition",
            "scope": 14496,
            "src": "238:95:55",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 14100,
            "name": "reputationPoint",
            "nodeType": "VariableDeclaration",
            "scope": 14496,
            "src": "444:21:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Token_$14098_storage",
              "typeString": "struct DaoPointsStorage.Token"
            },
            "typeName": {
              "contractScope": null,
              "id": 14099,
              "name": "Token",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 14098,
              "src": "444:5:55",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Token_$14098_storage_ptr",
                "typeString": "struct DaoPointsStorage.Token"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 14104,
            "name": "quarterPoint",
            "nodeType": "VariableDeclaration",
            "scope": 14496,
            "src": "615:39:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token)"
            },
            "typeName": {
              "id": 14103,
              "keyType": {
                "id": 14101,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "624:7:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "615:26:55",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                "typeString": "mapping(uint256 => struct DaoPointsStorage.Token)"
              },
              "valueType": {
                "contractScope": null,
                "id": 14102,
                "name": "Token",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 14098,
                "src": "635:5:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Token_$14098_storage_ptr",
                  "typeString": "struct DaoPointsStorage.Token"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 14108,
            "name": "quarterModeratorPoint",
            "nodeType": "VariableDeclaration",
            "scope": 14496,
            "src": "757:48:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token)"
            },
            "typeName": {
              "id": 14107,
              "keyType": {
                "id": 14105,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "766:7:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "757:26:55",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                "typeString": "mapping(uint256 => struct DaoPointsStorage.Token)"
              },
              "valueType": {
                "contractScope": null,
                "id": 14106,
                "name": "Token",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 14098,
                "src": "777:5:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Token_$14098_storage_ptr",
                  "typeString": "struct DaoPointsStorage.Token"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 14120,
              "nodeType": "Block",
              "src": "862:70:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 14115,
                            "name": "CONTRACT_STORAGE_DAO_POINTS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1409,
                            "src": "885:27:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 14116,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14110,
                            "src": "914:9:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 14114,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "880:4:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 14117,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "880:44:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14113,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "872:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "872:53:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14119,
                  "nodeType": "ExpressionStatement",
                  "src": "872:53:55"
                }
              ]
            },
            "documentation": null,
            "id": 14121,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14111,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14110,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 14121,
                  "src": "824:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14109,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "824:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "823:19:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14112,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "862:0:55"
            },
            "scope": 14496,
            "src": "812:120:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14189,
              "nodeType": "Block",
              "src": "1179:474:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 14136,
                                "name": "CONTRACT_DAO_VOTING",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1355,
                                "src": "1213:19:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14137,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "1234:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14138,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "1262:11:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 14139,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "1212:62:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 14135,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "1197:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 14140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1197:78:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14134,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1189:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1189:87:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14142,
                  "nodeType": "ExpressionStatement",
                  "src": "1189:87:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14143,
                          "name": "quarterPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14104,
                          "src": "1286:12:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14145,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14144,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14127,
                          "src": "1299:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1286:28:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14146,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "1286:40:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14152,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14125,
                          "src": "1374:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 14147,
                              "name": "quarterPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14104,
                              "src": "1329:12:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                                "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                              }
                            },
                            "id": 14149,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14148,
                              "name": "_quarterNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14127,
                              "src": "1342:14:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1329:28:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Token_$14098_storage",
                              "typeString": "struct DaoPointsStorage.Token storage ref"
                            }
                          },
                          "id": 14150,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "totalSupply",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14093,
                          "src": "1329:40:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "1329:44:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1329:52:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1286:95:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14155,
                  "nodeType": "ExpressionStatement",
                  "src": "1286:95:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14156,
                            "name": "quarterPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14104,
                            "src": "1391:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14158,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14157,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14127,
                            "src": "1404:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1391:28:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14159,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "1391:36:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14161,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14160,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14123,
                        "src": "1428:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1391:50:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14169,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14125,
                          "src": "1499:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 14162,
                                "name": "quarterPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14104,
                                "src": "1444:12:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                                  "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                                }
                              },
                              "id": 14164,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 14163,
                                "name": "_quarterNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14127,
                                "src": "1457:14:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1444:28:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Token_$14098_storage",
                                "typeString": "struct DaoPointsStorage.Token storage ref"
                              }
                            },
                            "id": 14165,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 14097,
                            "src": "1444:36:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 14167,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14166,
                            "name": "_participant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14123,
                            "src": "1481:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1444:50:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "1444:54:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1444:62:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1391:115:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14172,
                  "nodeType": "ExpressionStatement",
                  "src": "1391:115:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14173,
                      "name": "_newPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14130,
                      "src": "1517:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14174,
                            "name": "quarterPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14104,
                            "src": "1529:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14176,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14175,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14127,
                            "src": "1542:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1529:28:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14177,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "1529:36:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14179,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14178,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14123,
                        "src": "1566:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1529:50:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1517:62:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14181,
                  "nodeType": "ExpressionStatement",
                  "src": "1517:62:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14187,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14182,
                      "name": "_newTotalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14132,
                      "src": "1589:14:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14183,
                          "name": "quarterPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14104,
                          "src": "1606:12:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14185,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14184,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14127,
                          "src": "1619:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1606:28:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14186,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "1606:40:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1589:57:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14188,
                  "nodeType": "ExpressionStatement",
                  "src": "1589:57:55"
                }
              ]
            },
            "documentation": "@notice add quarter points for a _participant for a _quarterNumber",
            "id": 14190,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addQuarterPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14123,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1038:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14122,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1038:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14125,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1060:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14124,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1060:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14127,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1076:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14126,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1076:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1037:62:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14133,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14130,
                  "name": "_newPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1132:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14129,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1132:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14132,
                  "name": "_newTotalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14190,
                  "src": "1151:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14131,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1151:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1131:43:55"
            },
            "scope": 14496,
            "src": "1013:640:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14258,
              "nodeType": "Block",
              "src": "1834:528:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 14205,
                                "name": "CONTRACT_DAO_VOTING",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1355,
                                "src": "1868:19:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14206,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "1889:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14207,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "1917:11:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 14208,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "1867:62:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 14204,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "1852:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 14209,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1852:78:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14203,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1844:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14210,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1844:87:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14211,
                  "nodeType": "ExpressionStatement",
                  "src": "1844:87:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14212,
                          "name": "quarterModeratorPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14108,
                          "src": "1941:21:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14214,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14213,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14196,
                          "src": "1963:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1941:37:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14215,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "1941:49:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14221,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14194,
                          "src": "2047:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 14216,
                              "name": "quarterModeratorPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14108,
                              "src": "1993:21:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                                "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                              }
                            },
                            "id": 14218,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14217,
                              "name": "_quarterNumber",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14196,
                              "src": "2015:14:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1993:37:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Token_$14098_storage",
                              "typeString": "struct DaoPointsStorage.Token storage ref"
                            }
                          },
                          "id": 14219,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "totalSupply",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14093,
                          "src": "1993:49:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14220,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "1993:53:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14222,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1993:61:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1941:113:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14224,
                  "nodeType": "ExpressionStatement",
                  "src": "1941:113:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14240,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14225,
                            "name": "quarterModeratorPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14108,
                            "src": "2064:21:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14227,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14226,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14196,
                            "src": "2086:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2064:37:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14228,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "2064:45:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14230,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14229,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14192,
                        "src": "2110:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2064:59:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14238,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14194,
                          "src": "2190:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 14231,
                                "name": "quarterModeratorPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14108,
                                "src": "2126:21:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                                  "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                                }
                              },
                              "id": 14233,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 14232,
                                "name": "_quarterNumber",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14196,
                                "src": "2148:14:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2126:37:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Token_$14098_storage",
                                "typeString": "struct DaoPointsStorage.Token storage ref"
                              }
                            },
                            "id": 14234,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 14097,
                            "src": "2126:45:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 14236,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14235,
                            "name": "_participant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14192,
                            "src": "2172:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2126:59:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14237,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "2126:63:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14239,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2126:71:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2064:133:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14241,
                  "nodeType": "ExpressionStatement",
                  "src": "2064:133:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14249,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14242,
                      "name": "_newPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14199,
                      "src": "2208:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14243,
                            "name": "quarterModeratorPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14108,
                            "src": "2220:21:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14245,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14244,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14196,
                            "src": "2242:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2220:37:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14246,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "2220:45:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14248,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14247,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14192,
                        "src": "2266:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2220:59:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2208:71:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14250,
                  "nodeType": "ExpressionStatement",
                  "src": "2208:71:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14251,
                      "name": "_newTotalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14201,
                      "src": "2289:14:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14252,
                          "name": "quarterModeratorPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14108,
                          "src": "2306:21:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14254,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14253,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14196,
                          "src": "2328:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2306:37:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14255,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "2306:49:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2289:66:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14257,
                  "nodeType": "ExpressionStatement",
                  "src": "2289:66:55"
                }
              ]
            },
            "documentation": null,
            "id": 14259,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addModeratorQuarterPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14192,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1693:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14191,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1693:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14194,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1715:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14193,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1715:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14196,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1731:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14195,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1731:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1692:62:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14199,
                  "name": "_newPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1787:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14198,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1787:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14201,
                  "name": "_newTotalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14259,
                  "src": "1806:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14200,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1806:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1786:43:55"
            },
            "scope": 14496,
            "src": "1659:703:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14277,
              "nodeType": "Block",
              "src": "2578:76:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14275,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14268,
                      "name": "_point",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14266,
                      "src": "2588:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14269,
                            "name": "quarterPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14104,
                            "src": "2597:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14271,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14270,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14263,
                            "src": "2610:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2597:28:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14272,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "2597:36:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14274,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14273,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14261,
                        "src": "2634:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2597:50:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2588:59:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14276,
                  "nodeType": "ExpressionStatement",
                  "src": "2588:59:55"
                }
              ]
            },
            "documentation": "@notice get quarter points for a _participant in a _quarterNumber",
            "id": 14278,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getQuarterPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14261,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14278,
                  "src": "2467:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14260,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2467:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14263,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14278,
                  "src": "2489:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14262,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2489:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2466:46:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14267,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14266,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14278,
                  "src": "2558:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14265,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2558:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2557:16:55"
            },
            "scope": 14496,
            "src": "2442:212:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14296,
              "nodeType": "Block",
              "src": "2805:85:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14287,
                      "name": "_point",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14285,
                      "src": "2815:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 14288,
                            "name": "quarterModeratorPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14108,
                            "src": "2824:21:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                              "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                            }
                          },
                          "id": 14290,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14289,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14282,
                            "src": "2846:14:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2824:37:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14291,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "2824:45:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14293,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14292,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14280,
                        "src": "2870:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2824:59:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2815:68:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14295,
                  "nodeType": "ExpressionStatement",
                  "src": "2815:68:55"
                }
              ]
            },
            "documentation": null,
            "id": 14297,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getQuarterModeratorPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14280,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14297,
                  "src": "2694:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14279,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2694:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14282,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14297,
                  "src": "2716:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14281,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2716:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2693:46:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14286,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14285,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14297,
                  "src": "2785:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14284,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2785:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2784:16:55"
            },
            "scope": 14496,
            "src": "2660:230:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14311,
              "nodeType": "Block",
              "src": "3093:71:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14304,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14302,
                      "src": "3103:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14305,
                          "name": "quarterPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14104,
                          "src": "3117:12:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14307,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14306,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14299,
                          "src": "3130:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3117:28:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14308,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "3117:40:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3103:54:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14310,
                  "nodeType": "ExpressionStatement",
                  "src": "3103:54:55"
                }
              ]
            },
            "documentation": "@notice get total quarter points for a particular _quarterNumber",
            "id": 14312,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTotalQuarterPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14300,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14299,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14312,
                  "src": "2999:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14298,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2999:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2998:24:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14303,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14302,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14312,
                  "src": "3068:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14301,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3068:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3067:21:55"
            },
            "scope": 14496,
            "src": "2969:195:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14326,
              "nodeType": "Block",
              "src": "3303:80:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14319,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14317,
                      "src": "3313:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 14320,
                          "name": "quarterModeratorPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14108,
                          "src": "3327:21:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Token_$14098_storage_$",
                            "typeString": "mapping(uint256 => struct DaoPointsStorage.Token storage ref)"
                          }
                        },
                        "id": 14322,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 14321,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14314,
                          "src": "3349:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3327:37:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14323,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "3327:49:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3313:63:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14325,
                  "nodeType": "ExpressionStatement",
                  "src": "3313:63:55"
                }
              ]
            },
            "documentation": null,
            "id": 14327,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTotalQuarterModeratorPoint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14315,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14314,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 14327,
                  "src": "3209:22:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14313,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3209:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3208:24:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14317,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14327,
                  "src": "3278:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14316,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3278:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3277:21:55"
            },
            "scope": 14496,
            "src": "3170:213:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14383,
              "nodeType": "Block",
              "src": "3588:417:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 14340,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "3622:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14341,
                                "name": "CONTRACT_DAO_REWARDS_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1367,
                                "src": "3650:28:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14342,
                                "name": "CONTRACT_DAO_STAKE_LOCKING",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1352,
                                "src": "3680:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 14343,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "3621:86:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 14339,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "3606:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 14344,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3606:102:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14338,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3598:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14345,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3598:111:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14346,
                  "nodeType": "ExpressionStatement",
                  "src": "3598:111:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14347,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "3719:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14349,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "3719:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14353,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14331,
                          "src": "3781:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 14350,
                            "name": "reputationPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14100,
                            "src": "3749:15:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Token_$14098_storage",
                              "typeString": "struct DaoPointsStorage.Token storage ref"
                            }
                          },
                          "id": 14351,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "totalSupply",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14093,
                          "src": "3749:27:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "3749:31:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14354,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3749:39:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3719:69:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14356,
                  "nodeType": "ExpressionStatement",
                  "src": "3719:69:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14369,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14357,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "3798:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14360,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "3798:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14361,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14359,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14329,
                        "src": "3822:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3798:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14367,
                          "name": "_point",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14331,
                          "src": "3880:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 14362,
                              "name": "reputationPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14100,
                              "src": "3838:15:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Token_$14098_storage",
                                "typeString": "struct DaoPointsStorage.Token storage ref"
                              }
                            },
                            "id": 14363,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "balance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 14097,
                            "src": "3838:23:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 14365,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 14364,
                            "name": "_participant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14329,
                            "src": "3862:12:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3838:37:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14366,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "3838:41:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14368,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3838:49:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3798:89:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14370,
                  "nodeType": "ExpressionStatement",
                  "src": "3798:89:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14371,
                      "name": "_newPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14334,
                      "src": "3898:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14372,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "3910:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14373,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "3910:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14375,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14374,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14329,
                        "src": "3934:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3910:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3898:49:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14377,
                  "nodeType": "ExpressionStatement",
                  "src": "3898:49:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14381,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14378,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14336,
                      "src": "3957:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14379,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "3971:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14380,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "3971:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3957:41:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14382,
                  "nodeType": "ExpressionStatement",
                  "src": "3957:41:55"
                }
              ]
            },
            "documentation": "@notice add reputation points for a _participant",
            "id": 14384,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "increaseReputation",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14329,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14384,
                  "src": "3474:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14328,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3474:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14331,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14384,
                  "src": "3496:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14330,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3496:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3473:38:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14337,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14334,
                  "name": "_newPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14384,
                  "src": "3544:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14333,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3544:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14336,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14384,
                  "src": "3563:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14335,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3563:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3543:40:55"
            },
            "scope": 14496,
            "src": "3446:559:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14468,
              "nodeType": "Block",
              "src": "4213:653:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 14397,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "4247:26:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14398,
                                "name": "CONTRACT_DAO_REWARDS_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1367,
                                "src": "4275:28:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 14399,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "4305:11:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 14400,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4246:71:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 14396,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "4231:14:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 14401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4231:87:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 14395,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4223:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 14402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4223:96:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 14403,
                  "nodeType": "ExpressionStatement",
                  "src": "4223:96:55"
                },
                {
                  "assignments": [
                    14405
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 14405,
                      "name": "_toDeduct",
                      "nodeType": "VariableDeclaration",
                      "scope": 14469,
                      "src": "4329:17:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 14404,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4329:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 14407,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 14406,
                    "name": "_point",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 14388,
                    "src": "4349:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4329:26:55"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 14413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14408,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "4369:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14409,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "4369:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14411,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14410,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14386,
                        "src": "4393:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4369:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 14412,
                      "name": "_point",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14388,
                      "src": "4409:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4369:46:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 14444,
                    "nodeType": "Block",
                    "src": "4537:129:55",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 14434,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 14429,
                            "name": "_toDeduct",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14405,
                            "src": "4551:9:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 14430,
                                "name": "reputationPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14100,
                                "src": "4563:15:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Token_$14098_storage",
                                  "typeString": "struct DaoPointsStorage.Token storage ref"
                                }
                              },
                              "id": 14431,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 14097,
                              "src": "4563:23:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 14433,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14432,
                              "name": "_participant",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14386,
                              "src": "4587:12:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4563:37:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4551:49:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14435,
                        "nodeType": "ExpressionStatement",
                        "src": "4551:49:55"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 14442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 14436,
                                "name": "reputationPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14100,
                                "src": "4614:15:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Token_$14098_storage",
                                  "typeString": "struct DaoPointsStorage.Token storage ref"
                                }
                              },
                              "id": 14439,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 14097,
                              "src": "4614:23:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 14440,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14438,
                              "name": "_participant",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14386,
                              "src": "4638:12:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4614:37:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 14441,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4654:1:55",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4614:41:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14443,
                        "nodeType": "ExpressionStatement",
                        "src": "4614:41:55"
                      }
                    ]
                  },
                  "id": 14445,
                  "nodeType": "IfStatement",
                  "src": "4365:301:55",
                  "trueBody": {
                    "id": 14428,
                    "nodeType": "Block",
                    "src": "4417:114:55",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 14426,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 14414,
                                "name": "reputationPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14100,
                                "src": "4431:15:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Token_$14098_storage",
                                  "typeString": "struct DaoPointsStorage.Token storage ref"
                                }
                              },
                              "id": 14417,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 14097,
                              "src": "4431:23:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 14418,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 14416,
                              "name": "_participant",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14386,
                              "src": "4455:12:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4431:37:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 14424,
                                "name": "_point",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 14388,
                                "src": "4513:6:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 14419,
                                    "name": "reputationPoint",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 14100,
                                    "src": "4471:15:55",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Token_$14098_storage",
                                      "typeString": "struct DaoPointsStorage.Token storage ref"
                                    }
                                  },
                                  "id": 14420,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "balance",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 14097,
                                  "src": "4471:23:55",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 14422,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 14421,
                                  "name": "_participant",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 14386,
                                  "src": "4495:12:55",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4471:37:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 14423,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25586,
                              "src": "4471:41:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 14425,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4471:49:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4431:89:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14427,
                        "nodeType": "ExpressionStatement",
                        "src": "4431:89:55"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14446,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "4676:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14448,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "4676:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 14452,
                          "name": "_toDeduct",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14405,
                          "src": "4738:9:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 14449,
                            "name": "reputationPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14100,
                            "src": "4706:15:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Token_$14098_storage",
                              "typeString": "struct DaoPointsStorage.Token storage ref"
                            }
                          },
                          "id": 14450,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "totalSupply",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 14093,
                          "src": "4706:27:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 14451,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25586,
                        "src": "4706:31:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 14453,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4706:42:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4676:72:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14455,
                  "nodeType": "ExpressionStatement",
                  "src": "4676:72:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14456,
                      "name": "_newPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14391,
                      "src": "4759:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14457,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "4771:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14458,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "4771:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14460,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14459,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14386,
                        "src": "4795:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4771:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4759:49:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14462,
                  "nodeType": "ExpressionStatement",
                  "src": "4759:49:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14466,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14463,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14393,
                      "src": "4818:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14464,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "4832:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14465,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "4832:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4818:41:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14467,
                  "nodeType": "ExpressionStatement",
                  "src": "4818:41:55"
                }
              ]
            },
            "documentation": "@notice subtract reputation points for a _participant",
            "id": 14469,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "reduceReputation",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14386,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14469,
                  "src": "4099:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14385,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4099:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14388,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14469,
                  "src": "4121:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14387,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4121:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4098:38:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14394,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14391,
                  "name": "_newPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14469,
                  "src": "4169:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14390,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4169:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 14393,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14469,
                  "src": "4188:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14392,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4188:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4168:40:55"
            },
            "scope": 14496,
            "src": "4073:793:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14483,
              "nodeType": "Block",
              "src": "5027:59:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14481,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14476,
                      "name": "_point",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14474,
                      "src": "5035:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 14477,
                          "name": "reputationPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14100,
                          "src": "5044:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Token_$14098_storage",
                            "typeString": "struct DaoPointsStorage.Token storage ref"
                          }
                        },
                        "id": 14478,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14097,
                        "src": "5044:23:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 14480,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 14479,
                        "name": "_participant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14471,
                        "src": "5068:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5044:37:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5035:46:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14482,
                  "nodeType": "ExpressionStatement",
                  "src": "5035:46:55"
                }
              ]
            },
            "documentation": "@notice get reputation points for a _participant",
            "id": 14484,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getReputation",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14472,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14471,
                  "name": "_participant",
                  "nodeType": "VariableDeclaration",
                  "scope": 14484,
                  "src": "4948:20:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 14470,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4948:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4947:22:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14474,
                  "name": "_point",
                  "nodeType": "VariableDeclaration",
                  "scope": 14484,
                  "src": "5009:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14473,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5009:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5008:16:55"
            },
            "scope": 14496,
            "src": "4925:161:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 14494,
              "nodeType": "Block",
              "src": "5247:54:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 14492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 14489,
                      "name": "_totalPoint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 14487,
                      "src": "5255:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 14490,
                        "name": "reputationPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14100,
                        "src": "5269:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Token_$14098_storage",
                          "typeString": "struct DaoPointsStorage.Token storage ref"
                        }
                      },
                      "id": 14491,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "totalSupply",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14093,
                      "src": "5269:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5255:41:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 14493,
                  "nodeType": "ExpressionStatement",
                  "src": "5255:41:55"
                }
              ]
            },
            "documentation": "@notice get total reputation points distributed in the dao",
            "id": 14495,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTotalReputation",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 14485,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5182:2:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 14488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 14487,
                  "name": "_totalPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 14495,
                  "src": "5224:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 14486,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5224:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5223:21:55"
            },
            "scope": 14496,
            "src": "5155:146:55",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 14497,
        "src": "129:5174:55"
      }
    ],
    "src": "0:5304:55"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-13T02:38:46.105Z"
}