{
  "contractName": "UController",
  "abi": [
    {
      "constant": false,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "unregisterScheme",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "getSchemeParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_globalConstraint",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "isGlobalConstraintRegister",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newController",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "upgradeController",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_globalConstraint",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "removeGlobalConstraint",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "newControllers",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_params",
          "type": "bytes32[]"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "genericAction",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_amountInWei",
          "type": "uint256"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "sendEther",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_amount",
          "type": "uint256"
        },
        {
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "mintTokens",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_addedValue",
          "type": "uint256"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "externalTokenIncreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "unregisterSelf",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_amount",
          "type": "int256"
        },
        {
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "mintReputation",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "globalConstraintsCount",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "getSchemePermissions",
      "outputs": [
        {
          "name": "",
          "type": "bytes4"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "isSchemeRegistered",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "newOrganization",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "externalTokenTransfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_subtractedValue",
          "type": "uint256"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "externalTokenDecreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_globalConstraint",
          "type": "address"
        },
        {
          "name": "_params",
          "type": "bytes32"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "addGlobalConstraint",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_paramsHash",
          "type": "bytes32"
        },
        {
          "name": "_permissions",
          "type": "bytes4"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "registerScheme",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_externalToken",
          "type": "address"
        },
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        },
        {
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "externalTokenTransferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_amount",
          "type": "int256"
        },
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "MintReputation",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_amount",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "MintTokens",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_scheme",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "RegisterScheme",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_scheme",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "UnregisterScheme",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_params",
          "type": "bytes32[]"
        }
      ],
      "name": "GenericAction",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_amountInWei",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "SendEther",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenTransfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenTransferFrom",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenIncreaseApproval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "ExternalTokenDecreaseApproval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_globalconstraint",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_params",
          "type": "bytes32"
        }
      ],
      "name": "AddGlobalConstraint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_globalConstraint",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "RemoveGlobalConstraint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_oldController",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_newController",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "UpgradeController",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b6137f08061001e6000396000f3006060604052600436106101035763ffffffff60e060020a600035041663039de01d81146101085780631c4d56081461014157806325f0ba8f1461017857806342427bf81461019d5780634f52b5be146101c25780634fe125a3146101e75780636035174814610222578063634965da1461027c5780636407e432146102a4578063644b98ed146102cc5780636c525b13146102fb5780636cfc65821461031a578063824f2f1f146103425780639b51e35a146103615780639be2faed146103b8578063b9981364146103dd578063b9a04cdd146103fe578063c6ab78b91461042d578063e4537a741461045c578063e869d45f14610485578063fb4856a2146104d1575b600080fd5b341561011357600080fd5b61012d600160a060020a0360043581169060243516610506565b604051901515815260200160405180910390f35b341561014c57600080fd5b610166600160a060020a036004358116906024351661090a565b60405190815260200160405180910390f35b341561018357600080fd5b61012d600160a060020a0360043581169060243516610938565b34156101a857600080fd5b61012d600160a060020a0360043581169060243516610969565b34156101cd57600080fd5b61012d600160a060020a0360043581169060243516610cec565b34156101f257600080fd5b610206600160a060020a0360043516610f7b565b604051600160a060020a03909116815260200160405180910390f35b341561022d57600080fd5b61012d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610f96915050565b341561028757600080fd5b61012d600435600160a060020a036024358116906044351661138f565b34156102af57600080fd5b61012d600435600160a060020a0360243581169060443516611707565b34156102d757600080fd5b61012d600160a060020a036004358116906024358116906044359060643516611a91565b341561030657600080fd5b61012d600160a060020a0360043516611e27565b341561032557600080fd5b61012d600435600160a060020a0360243581169060443516611eb9565b341561034d57600080fd5b610166600160a060020a0360043516612246565b341561036c57600080fd5b610386600160a060020a0360043581169060243516612264565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909116815260200160405180910390f35b34156103c357600080fd5b61012d600160a060020a036004358116906024351661229b565b34156103e857600080fd5b6103fc600160a060020a03600435166122d7565b005b341561040957600080fd5b61012d600160a060020a03600435811690602435811690604435906064351661256f565b341561043857600080fd5b61012d600160a060020a0360043581169060243581169060443590606435166128f1565b341561046757600080fd5b61012d600160a060020a036004358116906024359060443516612c7a565b341561049057600080fd5b61012d600160a060020a03600435811690602435907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19604435169060643516612e6d565b34156104dc57600080fd5b61012d600160a060020a03600435811690602435811690604435811690606435906084351661338e565b600160a060020a038082166000908152602081815260408083203390941683526002939093019052908120600101548190839060e060020a027c02000000000000000000000000000000000000000000000000000000009081161461056a57600080fd5b7f756e7265676973746572536368656d6500000000000000000000000000000000846000610596613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015610623576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016105db565b505050509050600091505b80518210156106fd5780828151811061064357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061066957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156106cc57600080fd5b6102c65a03f115156106dd57600080fd5b5050506040518051905015156106f257600080fd5b60019091019061062e565b600160a060020a03808916600090815260208181526040808320938d16835260029093019052206001015460e060020a908102965086161515610743576000965061082a565b600160a060020a0388811660009081526020818152604080832033909416835260029093019052206001015460e060020a021986167c0f0000000000000000000000000000000000000000000000000000000016156107a157600080fd5b87600160a060020a031689600160a060020a031633600160a060020a03167f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b60405160405180910390a4600160a060020a03808916600090815260208181526040808320938d168352600290930190529081209081556001908101805463ffffffff1916905596505b600091505b80518210156108fe5780828151811061084457fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061086a57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156108cd57600080fd5b6102c65a03f115156108de57600080fd5b5050506040518051905015156108f357600080fd5b60019091019061082f565b50505050505092915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052205492915050565b600160a060020a03808216600090815260208181526040808320938616835260049093019052205460ff1692915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a027c0800000000000000000000000000000000000000000000000000000000908116146109ca57600080fd5b600160a060020a0383811660009081526001602052604090205416156109ef57600080fd5b600160a060020a0384161515610a0457600080fd5b600160a060020a03838116600081815260016020526040908190208054600160a060020a031916938816939093179092559063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610a7a57600080fd5b6102c65a03f11515610a8b57600080fd5b505050600160a060020a0383811660009081526020819052604080822054308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ae857600080fd5b6102c65a03f11515610af957600080fd5b50505060405180519050600160a060020a03161415610b8b57600160a060020a0380841660009081526020819052604090819020549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610b7657600080fd5b6102c65a03f11515610b8757600080fd5b5050505b600160a060020a0383811660009081526020819052604080822060010154308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610be857600080fd5b6102c65a03f11515610bf957600080fd5b50505060405180519050600160a060020a03161415610c8e57600160a060020a0380841660009081526020819052604090819020600101549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c7957600080fd5b6102c65a03f11515610c8a57600080fd5b5050505b7f8206909fdb23a8ad42188f753026bc9082758d85e20dce9bc8c4b34f2ec3db32308585604051600160a060020a03938416815291831660208301529091166040808301919091526060909101905180910390a15060019392505050565b6000610cf661374a565b6000610d0061374a565b600160a060020a03808616600090815260208181526040808320339094168352600290930190522060010154859060e060020a027c040000000000000000000000000000000000000000000000000000000090811614610d5f57600080fd5b600160a060020a03808716600090815260208181526040808320938b168352600490930190528190209080519081016040908152825460ff1615158252600190920154602080830191909152600160a060020a038916600090815290819052919091209094506003019250835115610f6c5782546000190160208501511015610ed557600160a060020a0386166000908152602081905260409020835460039091018054909160001901908110610e1257fe5b9060005260206000209060020201604080519081016040528154600160a060020a031681526001909101546020808301919091529092508290849086015181548110610e5a57fe5b906000526020600020906002020160008201518154600160a060020a031916600160a060020a03919091161781556020820151600190910155506020840151600160a060020a0387166000908152602081905260408120600401908451600160a060020a031681526020810191909152604001600020600101555b8254610ee5846000198301613761565b50600160a060020a03808716600090815260208181526040808320938b16835260049093018152918120805460ff19168155600101557f6ceab662049113d466f7e28b69edbec7cf641bc175522623536b09785887982a908890860151604051600160a060020a03909216825260208201526040908101905180910390a160019450610f71565b600094505b5050505092915050565b600160205260009081526040902054600160a060020a031681565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614610fda57600080fd5b7f67656e65726963416374696f6e00000000000000000000000000000000000000836000611006613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611093576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161104b565b505050509050600091505b805182101561116d578082815181106110b357fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106110d957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561113c57600080fd5b6102c65a03f1151561114d57600080fd5b50505060405180519050151561116257600080fd5b60019091019061109e565b33600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8960405160208082528190810183818151815260200191508051906020019060200280838360005b838110156111d85780820151838201526020016111c0565b505050509050019250505060405180910390a286600160a060020a0316636ce15a54338a6000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561126f578082015183820152602001611257565b505050509050019350505050602060405180830381600087803b151561129457600080fd5b6102c65a03f115156112a557600080fd5b5050506040518051965050600091505b8051821015611384578082815181106112ca57fe5b9060200190602002015151600160a060020a0316638043154d338385815181106112f057fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561135357600080fd5b6102c65a03f1151561136457600080fd5b50505060405180519050151561137957600080fd5b6001909101906112b5565b505050505092915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146113d357600080fd5b7f73656e64457468657200000000000000000000000000000000000000000000008360006113ff613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561148c576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611444565b505050509050600091505b8051821015611566578082815181106114ac57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106114d257fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561153557600080fd5b6102c65a03f1151561154657600080fd5b50505060405180519050151561155b57600080fd5b600190910190611497565b87600160a060020a031633600160a060020a03167fda35e091786fbaaace32084910404a0e3a14f22a7645a4c3d0fec2c6731e3c348b60405190815260200160405180910390a386600160a060020a031663cb16d4a28a8a60006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561160b57600080fd5b6102c65a03f1151561161c57600080fd5b5050506040518051965050600091505b80518210156116fb5780828151811061164157fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061166757fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156116ca57600080fd5b6102c65a03f115156116db57600080fd5b5050506040518051905015156116f057600080fd5b60019091019061162c565b50505050509392505050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461174b57600080fd5b7f6d696e74546f6b656e7300000000000000000000000000000000000000000000836000611777613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611804576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016117bc565b505050509050600091505b80518210156118de5780828151811061182457fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061184a57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156118ad57600080fd5b6102c65a03f115156118be57600080fd5b5050506040518051905015156118d357600080fd5b60019091019061180f565b86600160a060020a031688600160a060020a031633600160a060020a03167f5f31335b49d4d41584177ece651b9e2bb48565b82a1dfbf1b75eec6343215e4c8c60405190815260200160405180910390a4600160a060020a0380881660009081526020819052604080822054909216916340c10f19918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156119a157600080fd5b6102c65a03f115156119b257600080fd5b5050506040518051965050600091505b80518210156116fb578082815181106119d757fe5b9060200190602002015151600160a060020a0316638043154d338385815181106119fd57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611a6057600080fd5b6102c65a03f11515611a7157600080fd5b505050604051805190501515611a8657600080fd5b6001909101906119c2565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611ad557600080fd5b7f65787465726e616c546f6b656e496e637265617365417070726f76616c000000836000611b01613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611b8e576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611b46565b505050509050600091505b8051821015611c6857808281518110611bae57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611bd457fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611c3757600080fd5b6102c65a03f11515611c4857600080fd5b505050604051805190501515611c5d57600080fd5b600190910190611b99565b89600160a060020a031633600160a060020a03167f2cee0640e7c161518a78fa901d8c0e4b2f51d42612532184a4f017a45b01ba288b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a0316638cf1355c8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611d2a57600080fd5b6102c65a03f11515611d3b57600080fd5b5050506040518051965050600091505b8051821015611e1a57808281518110611d6057fe5b9060200190602002015151600160a060020a0316638043154d33838581518110611d8657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611de957600080fd5b6102c65a03f11515611dfa57600080fd5b505050604051805190501515611e0f57600080fd5b600190910190611d4b565b5050505050949350505050565b6000611e33338361229b565b1515611e4157506000611eb4565b600160a060020a038083166000818152602081815260408083203390951680845260029095019091528082209182556001909101805463ffffffff1916905590919081907f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b905160405180910390a45060015b919050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611efd57600080fd5b7f6d696e7452657075746174696f6e000000000000000000000000000000000000836000611f29613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611fb6576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611f6e565b505050509050600091505b805182101561209057808281518110611fd657fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611ffc57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561205f57600080fd5b6102c65a03f1151561207057600080fd5b50505060405180519050151561208557600080fd5b600190910190611fc1565b86600160a060020a031688600160a060020a031633600160a060020a03167f14c6daf0620e7ece14b4140bbfd783064e337fd3ab814d9dd32c80fc4673fc158c60405190815260200160405180910390a4600160a060020a03808816600090815260208190526040808220600101549092169163fd9bf3aa918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561215657600080fd5b6102c65a03f1151561216757600080fd5b5050506040518051965050600091505b80518210156116fb5780828151811061218c57fe5b9060200190602002015151600160a060020a0316638043154d338385815181106121b257fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561221557600080fd5b6102c65a03f1151561222657600080fd5b50505060405180519050151561223b57600080fd5b600190910190612177565b600160a060020a031660009081526020819052604090206003015490565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a0292915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a90810216151592915050565b600160a060020a03811660009081526020819052604090206005015460ff161561230057600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561235057600080fd5b6102c65a03f1151561236157600080fd5b50505060405180519050600160a060020a031614151561238057600080fd5b600160a060020a038116600081815260208190526040808220600501805460ff1916600117905563e1758bd8919051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156123e157600080fd5b6102c65a03f115156123f257600080fd5b5050506040518051600160a060020a038381166000818152602081905260408082208054600160a060020a031916959094169490941790925592506389ae1c909151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561246657600080fd5b6102c65a03f1151561247757600080fd5b5050506040518051600160a060020a03838116600090815260208190526040908190206001018054600160a060020a0319169390921692909217905590508051908101604090815260008083527c0f00000000000000000000000000000000000000000000000000000000602080850191909152600160a060020a038086168352828252838320339091168352600201905220815181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03818116903316807f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a450565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146125b357600080fd5b7f65787465726e616c546f6b656e5472616e7366657200000000000000000000008360006125df613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561266c576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612624565b505050509050600091505b80518210156127465780828151811061268c57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106126b257fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561271557600080fd5b6102c65a03f1151561272657600080fd5b50505060405180519050151561273b57600080fd5b600190910190612677565b88600160a060020a03168a600160a060020a031633600160a060020a03167fd4c08afec48fd2cbe49032dc89d3b388b7a4e4f0563a1fdccd73339beb025aa18b60405190815260200160405180910390a486600160a060020a031663dab0efff8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561280157600080fd5b6102c65a03f1151561281257600080fd5b5050506040518051965050600091505b8051821015611e1a5780828151811061283757fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061285d57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156128c057600080fd5b6102c65a03f115156128d157600080fd5b5050506040518051905015156128e657600080fd5b600190910190612822565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461293557600080fd5b7f65787465726e616c546f6b656e4465637265617365417070726f76616c000000836000612961613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156129ee576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016129a6565b505050509050600091505b8051821015612ac857808281518110612a0e57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612a3457fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612a9757600080fd5b6102c65a03f11515612aa857600080fd5b505050604051805190501515612abd57600080fd5b6001909101906129f9565b89600160a060020a031633600160a060020a03167f56fc1f50d44108d3b715d77eb371d388bf2998c65b4eb5cf0ccd6c055be46d498b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a031663d29ab9c48b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515612b8a57600080fd5b6102c65a03f11515612b9b57600080fd5b5050506040518051965050600091505b8051821015611e1a57808281518110612bc057fe5b9060200190602002015151600160a060020a0316638043154d33838581518110612be657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612c4957600080fd5b6102c65a03f11515612c5a57600080fd5b505050604051805190501515612c6f57600080fd5b600190910190612bab565b600160a060020a0380821660009081526020818152604080832033909416835260029093019052908120600101548190839060e060020a027c040000000000000000000000000000000000000000000000000000000090811614612cdd57600080fd5b600160a060020a03808516600090815260208181526040808320938a1683526004840190915290205490925060ff161515612dd95760038201805460018101612d268382613761565b9160005260206000209060020201600060408051908101604052600160a060020a038a1681526020810189905291905081518154600160a060020a031916600160a060020a0391909116178155602082015160019091015550604090508051908101604090815260018252600384015460001901602080840191909152600160a060020a038916600090815260048601909152208151815460ff1916901515178155602082015160019091015550612e1d565b600160a060020a03861660009081526004830160205260409020600101546003830180548792908110612e0857fe5b60009182526020909120600160029092020101555b7f6f3ac186000a779fe66d0a5188f51993a6593d93c4ff052ec0453aa84f09dbcb8686604051600160a060020a03909216825260208201526040908101905180910390a150600195945050505050565b600160a060020a0380821660009081526020818152604080832033909416835260029390930190529081206001015481908190849060e060020a027c020000000000000000000000000000000000000000000000000000000090811614612ed357600080fd5b7f7265676973746572536368656d65000000000000000000000000000000000000856000612eff613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015612f8c576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612f44565b505050509050600091505b805182101561306657808281518110612fac57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612fd257fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561303557600080fd5b6102c65a03f1151561304657600080fd5b50505060405180519050151561305b57600080fd5b600190910190612f97565b6000808a600160a060020a0316600160a060020a0316815260200190815260200160002060020160008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a0296506000808a600160a060020a0316600160a060020a03168152602001908152602001600020600201600033600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a029550600060e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168619888c18600f60e060020a0216167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561318757600080fd5b7c0f000000000000000000000000000000000000000000000000000000008619881616156131b457600080fd5b60408051908101604052808c600019168152602001600160e060020a028c177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152506000808b600160a060020a0316600160a060020a0316815260200190815260200160002060020160008e600160a060020a0316600160a060020a03168152602001908152602001600020600082015181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03898116908d81169033167f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a460019750600091505b805182101561337f578082815181106132c557fe5b9060200190602002015151600160a060020a0316638043154d338385815181106132eb57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561334e57600080fd5b6102c65a03f1151561335f57600080fd5b50505060405180519050151561337457600080fd5b6001909101906132b0565b50505050505050949350505050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146133d257600080fd5b7f65787465726e616c546f6b656e5472616e7366657246726f6d000000000000008360006133fe613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561348b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101613443565b505050509050600091505b8051821015613565578082815181106134ab57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106134d157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561353457600080fd5b6102c65a03f1151561354557600080fd5b50505060405180519050151561355a57600080fd5b600190910190613496565b8a600160a060020a031633600160a060020a03167f283faba4b8dcfe263728666be500623fdf5ae89ac78e40952fe2493f918ed62c8c8c8c604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a386600160a060020a031663b756d5a28c8c8c8c60006040516020015260405160e060020a63ffffffff8716028152600160a060020a0394851660048201529284166024840152921660448201526064810191909152608401602060405180830381600087803b151561363a57600080fd5b6102c65a03f1151561364b57600080fd5b5050506040518051965050600091505b805182101561372a5780828151811061367057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061369657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156136f957600080fd5b6102c65a03f1151561370a57600080fd5b50505060405180519050151561371f57600080fd5b60019091019061365b565b505050505095945050505050565b60206040519081016040526000815290565b604080519081016040526000808252602082015290565b81548183558181151161378d5760020281600202836000526020600020918201910161378d9190613792565b505050565b6137c191905b808211156137bd578054600160a060020a031916815560006001820155600201613798565b5090565b905600a165627a7a7230582046d6db64da1a702578d6097b4b48a060ad040d1848f17007a97163ffb97f86120029",
  "deployedBytecode": "0x6060604052600436106101035763ffffffff60e060020a600035041663039de01d81146101085780631c4d56081461014157806325f0ba8f1461017857806342427bf81461019d5780634f52b5be146101c25780634fe125a3146101e75780636035174814610222578063634965da1461027c5780636407e432146102a4578063644b98ed146102cc5780636c525b13146102fb5780636cfc65821461031a578063824f2f1f146103425780639b51e35a146103615780639be2faed146103b8578063b9981364146103dd578063b9a04cdd146103fe578063c6ab78b91461042d578063e4537a741461045c578063e869d45f14610485578063fb4856a2146104d1575b600080fd5b341561011357600080fd5b61012d600160a060020a0360043581169060243516610506565b604051901515815260200160405180910390f35b341561014c57600080fd5b610166600160a060020a036004358116906024351661090a565b60405190815260200160405180910390f35b341561018357600080fd5b61012d600160a060020a0360043581169060243516610938565b34156101a857600080fd5b61012d600160a060020a0360043581169060243516610969565b34156101cd57600080fd5b61012d600160a060020a0360043581169060243516610cec565b34156101f257600080fd5b610206600160a060020a0360043516610f7b565b604051600160a060020a03909116815260200160405180910390f35b341561022d57600080fd5b61012d600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050509235600160a060020a03169250610f96915050565b341561028757600080fd5b61012d600435600160a060020a036024358116906044351661138f565b34156102af57600080fd5b61012d600435600160a060020a0360243581169060443516611707565b34156102d757600080fd5b61012d600160a060020a036004358116906024358116906044359060643516611a91565b341561030657600080fd5b61012d600160a060020a0360043516611e27565b341561032557600080fd5b61012d600435600160a060020a0360243581169060443516611eb9565b341561034d57600080fd5b610166600160a060020a0360043516612246565b341561036c57600080fd5b610386600160a060020a0360043581169060243516612264565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909116815260200160405180910390f35b34156103c357600080fd5b61012d600160a060020a036004358116906024351661229b565b34156103e857600080fd5b6103fc600160a060020a03600435166122d7565b005b341561040957600080fd5b61012d600160a060020a03600435811690602435811690604435906064351661256f565b341561043857600080fd5b61012d600160a060020a0360043581169060243581169060443590606435166128f1565b341561046757600080fd5b61012d600160a060020a036004358116906024359060443516612c7a565b341561049057600080fd5b61012d600160a060020a03600435811690602435907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19604435169060643516612e6d565b34156104dc57600080fd5b61012d600160a060020a03600435811690602435811690604435811690606435906084351661338e565b600160a060020a038082166000908152602081815260408083203390941683526002939093019052908120600101548190839060e060020a027c02000000000000000000000000000000000000000000000000000000009081161461056a57600080fd5b7f756e7265676973746572536368656d6500000000000000000000000000000000846000610596613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015610623576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016105db565b505050509050600091505b80518210156106fd5780828151811061064357fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061066957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156106cc57600080fd5b6102c65a03f115156106dd57600080fd5b5050506040518051905015156106f257600080fd5b60019091019061062e565b600160a060020a03808916600090815260208181526040808320938d16835260029093019052206001015460e060020a908102965086161515610743576000965061082a565b600160a060020a0388811660009081526020818152604080832033909416835260029093019052206001015460e060020a021986167c0f0000000000000000000000000000000000000000000000000000000016156107a157600080fd5b87600160a060020a031689600160a060020a031633600160a060020a03167f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b60405160405180910390a4600160a060020a03808916600090815260208181526040808320938d168352600290930190529081209081556001908101805463ffffffff1916905596505b600091505b80518210156108fe5780828151811061084457fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061086a57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156108cd57600080fd5b6102c65a03f115156108de57600080fd5b5050506040518051905015156108f357600080fd5b60019091019061082f565b50505050505092915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052205492915050565b600160a060020a03808216600090815260208181526040808320938616835260049093019052205460ff1692915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a027c0800000000000000000000000000000000000000000000000000000000908116146109ca57600080fd5b600160a060020a0383811660009081526001602052604090205416156109ef57600080fd5b600160a060020a0384161515610a0457600080fd5b600160a060020a03838116600081815260016020526040908190208054600160a060020a031916938816939093179092559063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610a7a57600080fd5b6102c65a03f11515610a8b57600080fd5b505050600160a060020a0383811660009081526020819052604080822054308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ae857600080fd5b6102c65a03f11515610af957600080fd5b50505060405180519050600160a060020a03161415610b8b57600160a060020a0380841660009081526020819052604090819020549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610b7657600080fd5b6102c65a03f11515610b8757600080fd5b5050505b600160a060020a0383811660009081526020819052604080822060010154308416931691638da5cb5b9151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610be857600080fd5b6102c65a03f11515610bf957600080fd5b50505060405180519050600160a060020a03161415610c8e57600160a060020a0380841660009081526020819052604090819020600101549091169063f2fde38b9086905160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515610c7957600080fd5b6102c65a03f11515610c8a57600080fd5b5050505b7f8206909fdb23a8ad42188f753026bc9082758d85e20dce9bc8c4b34f2ec3db32308585604051600160a060020a03938416815291831660208301529091166040808301919091526060909101905180910390a15060019392505050565b6000610cf661374a565b6000610d0061374a565b600160a060020a03808616600090815260208181526040808320339094168352600290930190522060010154859060e060020a027c040000000000000000000000000000000000000000000000000000000090811614610d5f57600080fd5b600160a060020a03808716600090815260208181526040808320938b168352600490930190528190209080519081016040908152825460ff1615158252600190920154602080830191909152600160a060020a038916600090815290819052919091209094506003019250835115610f6c5782546000190160208501511015610ed557600160a060020a0386166000908152602081905260409020835460039091018054909160001901908110610e1257fe5b9060005260206000209060020201604080519081016040528154600160a060020a031681526001909101546020808301919091529092508290849086015181548110610e5a57fe5b906000526020600020906002020160008201518154600160a060020a031916600160a060020a03919091161781556020820151600190910155506020840151600160a060020a0387166000908152602081905260408120600401908451600160a060020a031681526020810191909152604001600020600101555b8254610ee5846000198301613761565b50600160a060020a03808716600090815260208181526040808320938b16835260049093018152918120805460ff19168155600101557f6ceab662049113d466f7e28b69edbec7cf641bc175522623536b09785887982a908890860151604051600160a060020a03909216825260208201526040908101905180910390a160019450610f71565b600094505b5050505092915050565b600160205260009081526040902054600160a060020a031681565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614610fda57600080fd5b7f67656e65726963416374696f6e00000000000000000000000000000000000000836000611006613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611093576000848152602090206002830201604080519081016040528154600160a060020a031681526001918201546020808301919091529083529201910161104b565b505050509050600091505b805182101561116d578082815181106110b357fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106110d957fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561113c57600080fd5b6102c65a03f1151561114d57600080fd5b50505060405180519050151561116257600080fd5b60019091019061109e565b33600160a060020a03167f8518530cc6bc186721ab2fc226031ca054c8484893d8b0c7faab65a58aac238d8960405160208082528190810183818151815260200191508051906020019060200280838360005b838110156111d85780820151838201526020016111c0565b505050509050019250505060405180910390a286600160a060020a0316636ce15a54338a6000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561126f578082015183820152602001611257565b505050509050019350505050602060405180830381600087803b151561129457600080fd5b6102c65a03f115156112a557600080fd5b5050506040518051965050600091505b8051821015611384578082815181106112ca57fe5b9060200190602002015151600160a060020a0316638043154d338385815181106112f057fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561135357600080fd5b6102c65a03f1151561136457600080fd5b50505060405180519050151561137957600080fd5b6001909101906112b5565b505050505092915050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146113d357600080fd5b7f73656e64457468657200000000000000000000000000000000000000000000008360006113ff613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561148c576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611444565b505050509050600091505b8051821015611566578082815181106114ac57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106114d257fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561153557600080fd5b6102c65a03f1151561154657600080fd5b50505060405180519050151561155b57600080fd5b600190910190611497565b87600160a060020a031633600160a060020a03167fda35e091786fbaaace32084910404a0e3a14f22a7645a4c3d0fec2c6731e3c348b60405190815260200160405180910390a386600160a060020a031663cb16d4a28a8a60006040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b151561160b57600080fd5b6102c65a03f1151561161c57600080fd5b5050506040518051965050600091505b80518210156116fb5780828151811061164157fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061166757fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156116ca57600080fd5b6102c65a03f115156116db57600080fd5b5050506040518051905015156116f057600080fd5b60019091019061162c565b50505050509392505050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461174b57600080fd5b7f6d696e74546f6b656e7300000000000000000000000000000000000000000000836000611777613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611804576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016117bc565b505050509050600091505b80518210156118de5780828151811061182457fe5b9060200190602002015151600160a060020a031663c1786ab23383858151811061184a57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156118ad57600080fd5b6102c65a03f115156118be57600080fd5b5050506040518051905015156118d357600080fd5b60019091019061180f565b86600160a060020a031688600160a060020a031633600160a060020a03167f5f31335b49d4d41584177ece651b9e2bb48565b82a1dfbf1b75eec6343215e4c8c60405190815260200160405180910390a4600160a060020a0380881660009081526020819052604080822054909216916340c10f19918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156119a157600080fd5b6102c65a03f115156119b257600080fd5b5050506040518051965050600091505b80518210156116fb578082815181106119d757fe5b9060200190602002015151600160a060020a0316638043154d338385815181106119fd57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611a6057600080fd5b6102c65a03f11515611a7157600080fd5b505050604051805190501515611a8657600080fd5b6001909101906119c2565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611ad557600080fd5b7f65787465726e616c546f6b656e496e637265617365417070726f76616c000000836000611b01613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611b8e576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611b46565b505050509050600091505b8051821015611c6857808281518110611bae57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611bd457fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611c3757600080fd5b6102c65a03f11515611c4857600080fd5b505050604051805190501515611c5d57600080fd5b600190910190611b99565b89600160a060020a031633600160a060020a03167f2cee0640e7c161518a78fa901d8c0e4b2f51d42612532184a4f017a45b01ba288b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a0316638cf1355c8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611d2a57600080fd5b6102c65a03f11515611d3b57600080fd5b5050506040518051965050600091505b8051821015611e1a57808281518110611d6057fe5b9060200190602002015151600160a060020a0316638043154d33838581518110611d8657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611de957600080fd5b6102c65a03f11515611dfa57600080fd5b505050604051805190501515611e0f57600080fd5b600190910190611d4b565b5050505050949350505050565b6000611e33338361229b565b1515611e4157506000611eb4565b600160a060020a038083166000818152602081815260408083203390951680845260029095019091528082209182556001909101805463ffffffff1916905590919081907f6c6acccb2a8bdecd133efe43bc929b25f75255a88da20af641c9ba4acc0e0e5b905160405180910390a45060015b919050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a908102811614611efd57600080fd5b7f6d696e7452657075746174696f6e000000000000000000000000000000000000836000611f29613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015611fb6576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101611f6e565b505050509050600091505b805182101561209057808281518110611fd657fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110611ffc57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561205f57600080fd5b6102c65a03f1151561207057600080fd5b50505060405180519050151561208557600080fd5b600190910190611fc1565b86600160a060020a031688600160a060020a031633600160a060020a03167f14c6daf0620e7ece14b4140bbfd783064e337fd3ab814d9dd32c80fc4673fc158c60405190815260200160405180910390a4600160a060020a03808816600090815260208190526040808220600101549092169163fd9bf3aa918b918d9190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561215657600080fd5b6102c65a03f1151561216757600080fd5b5050506040518051965050600091505b80518210156116fb5780828151811061218c57fe5b9060200190602002015151600160a060020a0316638043154d338385815181106121b257fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561221557600080fd5b6102c65a03f1151561222657600080fd5b50505060405180519050151561223b57600080fd5b600190910190612177565b600160a060020a031660009081526020819052604090206003015490565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a0292915050565b600160a060020a03808216600090815260208181526040808320938616835260029093019052206001015460e060020a90810216151592915050565b600160a060020a03811660009081526020819052604090206005015460ff161561230057600080fd5b30600160a060020a031681600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561235057600080fd5b6102c65a03f1151561236157600080fd5b50505060405180519050600160a060020a031614151561238057600080fd5b600160a060020a038116600081815260208190526040808220600501805460ff1916600117905563e1758bd8919051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156123e157600080fd5b6102c65a03f115156123f257600080fd5b5050506040518051600160a060020a038381166000818152602081905260408082208054600160a060020a031916959094169490941790925592506389ae1c909151602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561246657600080fd5b6102c65a03f1151561247757600080fd5b5050506040518051600160a060020a03838116600090815260208190526040908190206001018054600160a060020a0319169390921692909217905590508051908101604090815260008083527c0f00000000000000000000000000000000000000000000000000000000602080850191909152600160a060020a038086168352828252838320339091168352600201905220815181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03818116903316807f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a450565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146125b357600080fd5b7f65787465726e616c546f6b656e5472616e7366657200000000000000000000008360006125df613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561266c576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612624565b505050509050600091505b80518210156127465780828151811061268c57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106126b257fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561271557600080fd5b6102c65a03f1151561272657600080fd5b50505060405180519050151561273b57600080fd5b600190910190612677565b88600160a060020a03168a600160a060020a031633600160a060020a03167fd4c08afec48fd2cbe49032dc89d3b388b7a4e4f0563a1fdccd73339beb025aa18b60405190815260200160405180910390a486600160a060020a031663dab0efff8b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561280157600080fd5b6102c65a03f1151561281257600080fd5b5050506040518051965050600091505b8051821015611e1a5780828151811061283757fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061285d57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156128c057600080fd5b6102c65a03f115156128d157600080fd5b5050506040518051905015156128e657600080fd5b600190910190612822565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a90810281161461293557600080fd5b7f65787465726e616c546f6b656e4465637265617365417070726f76616c000000836000612961613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b828210156129ee576000848152602090206002830201604080519081016040528154600160a060020a03168152600191820154602080830191909152908352920191016129a6565b505050509050600091505b8051821015612ac857808281518110612a0e57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612a3457fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612a9757600080fd5b6102c65a03f11515612aa857600080fd5b505050604051805190501515612abd57600080fd5b6001909101906129f9565b89600160a060020a031633600160a060020a03167f56fc1f50d44108d3b715d77eb371d388bf2998c65b4eb5cf0ccd6c055be46d498b8b604051600160a060020a03909216825260208201526040908101905180910390a386600160a060020a031663d29ab9c48b8b8b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515612b8a57600080fd5b6102c65a03f11515612b9b57600080fd5b5050506040518051965050600091505b8051821015611e1a57808281518110612bc057fe5b9060200190602002015151600160a060020a0316638043154d33838581518110612be657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612c4957600080fd5b6102c65a03f11515612c5a57600080fd5b505050604051805190501515612c6f57600080fd5b600190910190612bab565b600160a060020a0380821660009081526020818152604080832033909416835260029093019052908120600101548190839060e060020a027c040000000000000000000000000000000000000000000000000000000090811614612cdd57600080fd5b600160a060020a03808516600090815260208181526040808320938a1683526004840190915290205490925060ff161515612dd95760038201805460018101612d268382613761565b9160005260206000209060020201600060408051908101604052600160a060020a038a1681526020810189905291905081518154600160a060020a031916600160a060020a0391909116178155602082015160019091015550604090508051908101604090815260018252600384015460001901602080840191909152600160a060020a038916600090815260048601909152208151815460ff1916901515178155602082015160019091015550612e1d565b600160a060020a03861660009081526004830160205260409020600101546003830180548792908110612e0857fe5b60009182526020909120600160029092020101555b7f6f3ac186000a779fe66d0a5188f51993a6593d93c4ff052ec0453aa84f09dbcb8686604051600160a060020a03909216825260208201526040908101905180910390a150600195945050505050565b600160a060020a0380821660009081526020818152604080832033909416835260029390930190529081206001015481908190849060e060020a027c020000000000000000000000000000000000000000000000000000000090811614612ed357600080fd5b7f7265676973746572536368656d65000000000000000000000000000000000000856000612eff613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b82821015612f8c576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101612f44565b505050509050600091505b805182101561306657808281518110612fac57fe5b9060200190602002015151600160a060020a031663c1786ab233838581518110612fd257fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561303557600080fd5b6102c65a03f1151561304657600080fd5b50505060405180519050151561305b57600080fd5b600190910190612f97565b6000808a600160a060020a0316600160a060020a0316815260200190815260200160002060020160008d600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a0296506000808a600160a060020a0316600160a060020a03168152602001908152602001600020600201600033600160a060020a0316600160a060020a0316815260200190815260200160002060010160009054906101000a900460e060020a029550600060e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168619888c18600f60e060020a0216167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151561318757600080fd5b7c0f000000000000000000000000000000000000000000000000000000008619881616156131b457600080fd5b60408051908101604052808c600019168152602001600160e060020a028c177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152506000808b600160a060020a0316600160a060020a0316815260200190815260200160002060020160008e600160a060020a0316600160a060020a03168152602001908152602001600020600082015181556020820151600191909101805463ffffffff191660e060020a90920491909117905550600160a060020a03898116908d81169033167f521230fe5fa463e77907aa7d9653b8cf93661e82561e966af8aa0a99910554c160405160405180910390a460019750600091505b805182101561337f578082815181106132c557fe5b9060200190602002015151600160a060020a0316638043154d338385815181106132eb57fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561334e57600080fd5b6102c65a03f1151561335f57600080fd5b50505060405180519050151561337457600080fd5b6001909101906132b0565b50505050505050949350505050565b600160a060020a038082166000908152602081815260408083203390941683526002909301905290812060010154829060e060020a9081028116146133d257600080fd5b7f65787465726e616c546f6b656e5472616e7366657246726f6d000000000000008360006133fe613738565b60008084600160a060020a0316600160a060020a0316815260200190815260200160002060030180548060200260200160405190810160405281815291906000602084015b8282101561348b576000848152602090206002830201604080519081016040528154600160a060020a0316815260019182015460208083019190915290835292019101613443565b505050509050600091505b8051821015613565578082815181106134ab57fe5b9060200190602002015151600160a060020a031663c1786ab2338385815181106134d157fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561353457600080fd5b6102c65a03f1151561354557600080fd5b50505060405180519050151561355a57600080fd5b600190910190613496565b8a600160a060020a031633600160a060020a03167f283faba4b8dcfe263728666be500623fdf5ae89ac78e40952fe2493f918ed62c8c8c8c604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a386600160a060020a031663b756d5a28c8c8c8c60006040516020015260405160e060020a63ffffffff8716028152600160a060020a0394851660048201529284166024840152921660448201526064810191909152608401602060405180830381600087803b151561363a57600080fd5b6102c65a03f1151561364b57600080fd5b5050506040518051965050600091505b805182101561372a5780828151811061367057fe5b9060200190602002015151600160a060020a0316638043154d3383858151811061369657fe5b90602001906020020151602001518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b15156136f957600080fd5b6102c65a03f1151561370a57600080fd5b50505060405180519050151561371f57600080fd5b60019091019061365b565b505050505095945050505050565b60206040519081016040526000815290565b604080519081016040526000808252602082015290565b81548183558181151161378d5760020281600202836000526020600020918201910161378d9190613792565b505050565b6137c191905b808211156137bd578054600160a060020a031916815560006001820155600201613798565b5090565b905600a165627a7a7230582046d6db64da1a702578d6097b4b48a060ad040d1848f17007a97163ffb97f86120029",
  "sourceMap": "504:18402:10:-;;;3541:31;;;;;;;;504:18402;;;;;;",
  "deployedSourceMap": "504:18402:10:-;;;;;;;;;-1:-1:-1;;;504:18402:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8497:742;;;;;;;;;;-1:-1:-1;;;;;8497:742:10;;;;;;;;;;;;;;;;;;;;;;;;;;;9908:169;;;;;;;;;;-1:-1:-1;;;;;9908:169:10;;;;;;;;;;;;;;;;;;;;;;;;;10440:209;;;;;;;;;;-1:-1:-1;;;;;10440:209:10;;;;;;;;;;13383:822;;;;;;;;;;-1:-1:-1;;;;;13383:822:10;;;;;;;;;;11962:1145;;;;;;;;;;-1:-1:-1;;;;;11962:1145:10;;;;;;;;;;2047:47;;;;;;;;;;-1:-1:-1;;;;;2047:47:10;;;;;;;;-1:-1:-1;;;;;2047:47:10;;;;;;;;;;;;;;14591:298;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14591:298:10;;-1:-1:-1;;;14591:298:10;;-1:-1:-1;;;;;14591:298:10;;-1:-1:-1;14591:298:10;;-1:-1:-1;;14591:298:10;15128:303;;;;;;;;;;;;-1:-1:-1;;;;;15128:303:10;;;;;;;;;;6454:341;;;;;;;;;;;;-1:-1:-1;;;;;6454:341:10;;;;;;;;;;17554:454;;;;;;;;;;-1:-1:-1;;;;;17554:454:10;;;;;;;;;;;;;;;;;;9398:306;;;;;;;;;;-1:-1:-1;;;;;9398:306:10;;;;;5861:357;;;;;;;;;;;;-1:-1:-1;;;;;5861:357:10;;;;;;;;;;10284:150;;;;;;;;;;-1:-1:-1;;;;;10284:150:10;;;;;10083:170;;;;;;;;;;-1:-1:-1;;;;;10083:170:10;;;;;;;;;;;;;-1:-1:-1;;10083:170:10;;;;;;;;;;;;;;9710:192;;;;;;;;;;-1:-1:-1;;;;;9710:192:10;;;;;;;;;;3718:576;;;;;;;;;;-1:-1:-1;;;;;3718:576:10;;;;;;;15761:395;;;;;;;;;;-1:-1:-1;;;;;15761:395:10;;;;;;;;;;;;;;;;;;18435:469;;;;;;;;;;-1:-1:-1;;;;;18435:469:10;;;;;;;;;;;;;;;;;;10945:781;;;;;;;;;;-1:-1:-1;;;;;10945:781:10;;;;;;;;;;;;;7127:1174;;;;;;;;;;-1:-1:-1;;;;;7127:1174:10;;;;;;;;-1:-1:-1;;7127:1174:10;;;;;;;;;16692:440;;;;;;;;;;-1:-1:-1;;;;;16692:440:10;;;;;;;;;;;;;;;;;;;;;;;8497:742;-1:-1:-1;;;;;4547:21:10;;;8671:4;4547:21;;;;;;;;;;;4577:10;4547:41;;;;;4621:1;4547:29;;;;:41;;;;;:53;;;8671:4;;8594:7;;-1:-1:-1;;;4547:53:10;4614:9;4547:63;;;:76;4539:85;;;;;;4986:630;8650:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;-1:-1:-1;;;;;8717:22:10;;;:13;:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;:51;;;-1:-1:-1;;;8717:51:10;;;;-1:-1:-1;8820:26:10;;:39;8816:84;;;8882:5;8875:12;;;;8816:84;-1:-1:-1;;;;;9010:22:10;;;9077:1;9010:22;;;;;;;;;;;9041:10;9010:42;;;;;:30;;;;:42;;;:54;;;-1:-1:-1;;;9010:54:10;9009:55;8991:74;;8979:10;:87;:100;8971:109;;;;;;9147:7;-1:-1:-1;;;;;9110:45:10;9139:7;-1:-1:-1;;;;;9110:45:10;9127:10;-1:-1:-1;;;;;9110:45:10;;;;;;;;;;;-1:-1:-1;;;;;9172:22:10;;;:13;:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;;;9165:46;;;;;;;;;-1:-1:-1;;9165:46:10;;;;-1:-1:-1;5391:1:10;5415;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4634:1;;;;8497:742;;;;;;:::o;9908:169::-;-1:-1:-1;;;;;10020:22:10;;;9994:7;10020:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;:50;9908:169;;;;:::o;10440:209::-;-1:-1:-1;;;;;10566:22:10;;;10543:4;10566:22;;;;;;;;;;;:67;;;;;:48;;;;:67;;;:76;;;10440:209;;;;:::o;13383:822::-;-1:-1:-1;;;;;4884:22:10;;;13498:4;4884:22;;;;;;;;;;;4915:10;4884:42;;;;;:30;;;;:42;;;;;:54;;;13481:7;;-1:-1:-1;;;4884:54:10;4952:9;4884:64;;;:77;4876:86;;;;;;-1:-1:-1;;;;;13526:23:10;;;13561:1;13526:23;;;:14;:23;;;;;;;:37;13518:46;;;;;;-1:-1:-1;;;;;13637:28:10;;;;13629:37;;;;;;-1:-1:-1;;;;;13676:23:10;;;;;;;:14;:23;;;;;;;:40;;-1:-1:-1;;;;;;13676:40:10;;;;;;;;;;;:23;13726:35;;13676:40;;13726:51;-1:-1:-1;;;13726:51:10;;;;;;-1:-1:-1;;;;;13726:51:10;;;;;;;;;-1:-1:-1;13726:51:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;13791:22:10;;;:13;:22;;;;;;;;;;;:34;13845:4;13791:59;;;:34;;:40;;:42;;;;;;;;;-1:-1:-1;;;13791:42:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13791:59:10;;13787:158;;;-1:-1:-1;;;;;13866:22:10;;;:13;:22;;;;;;;;;;;;:34;;;;;:52;;13919:14;;13866:68;-1:-1:-1;;;13866:68:10;;;;;;-1:-1:-1;;;;;13866:68:10;;;;;;;;;-1:-1:-1;13866:68:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13787:158;-1:-1:-1;;;;;13958:22:10;;;:13;:22;;;;;;;;;;;:39;;;14017:4;13958:64;;;:39;;:45;;:47;;;;;;;;;-1:-1:-1;;;13958:47:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13958:64:10;;13954:168;;;-1:-1:-1;;;;;14038:22:10;;;:13;:22;;;;;;;;;;;;:39;;;;;;;:57;;14096:14;;14038:73;-1:-1:-1;;;14038:73:10;;;;;;-1:-1:-1;;;;;14038:73:10;;;;;;;;;-1:-1:-1;14038:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13954:168;14131:46;14149:4;14154:14;14169:7;14131:46;;-1:-1:-1;;;;;14131:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14194:4:10;;13383:822;-1:-1:-1;;;13383:822:10:o;11962:1145::-;12094:4;12114:56;;:::i;:::-;12250:44;12485:40;;:::i;:::-;-1:-1:-1;;;;;4719:21:10;;;:13;:21;;;;;;;;;;;4749:10;4719:41;;;;;:29;;;;:41;;;:53;;;12077:7;;-1:-1:-1;;;4719:53:10;4786:9;4719:63;;;:76;4711:85;;;;;;-1:-1:-1;;;;;12173:22:10;;;:13;:22;;;;;;;;;;;:67;;;;;:48;;;;:67;;;;;;:22;12114:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12297:22:10;;12114:126;12297:22;;;;;;;;;;;12114:126;;-1:-1:-1;12297:40:10;;;-1:-1:-1;12114:126:10;12353:33;12349:730;;;12439:24;;-1:-1:-1;;12439:26:10;12406:30;;;;:59;12402:428;;;-1:-1:-1;;;;;12528:22:10;;:13;:22;;;;;;;;;;12569:24;;12528:40;;;;:68;;:40;;-1:-1:-1;;12569:26:10;;12528:68;;;;;;;;;;;;;;;;12485:111;;;;;;;;;;-1:-1:-1;;;;;12485:111:10;;;;;;;;;;;;;;;;;;-1:-1:-1;12485:111:10;;12614:17;;12632:30;;;12614:49;;;;;;;;;;;;;;;;;;:68;;;;;;-1:-1:-1;;;;;;12614:68:10;-1:-1:-1;;;;;12614:68:10;;;;;;;;;;;;;;;;-1:-1:-1;12785:30:10;;;;-1:-1:-1;;;;;12700:22:10;;:13;:22;;;;;;;;;;:48;;;12749:16;:26;-1:-1:-1;;;;;12700:76:10;;;;;;;;;;;;-1:-1:-1;12700:76:10;:82;;:115;12402:428;12843:26;;;:17;-1:-1:-1;;12843:26:10;;;:::i;:::-;-1:-1:-1;;;;;;12890:22:10;;;:13;:22;;;;;;;;;;;:67;;;;;:48;;;;:67;;;;;12883:74;;-1:-1:-1;;12883:74:10;;;;;;12971:72;;12939:17;;13012:30;;;12971:72;;-1:-1:-1;;;;;12971:72:10;;;;;;;;;;;;;;;;;;;;13064:4;13057:11;;;;12349:730;13095:5;13088:12;;4806:1;11962:1145;;;;;;;;:::o;2047:47::-;;;;;;;;;;;;-1:-1:-1;;;;;2047:47:10;;:::o;14591:298::-;-1:-1:-1;;;;;4380:21:10;;;14759:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;14685:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;14738:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;14793:10;-1:-1:-1;;;;;14779:34:10;;14805:7;14779:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;14838:7:10;-1:-1:-1;;;;;14830:31:10;;14862:10;14874:7;14830:52;;;;;;;;;;;-1:-1:-1;;;14830:52:10;;;;;;;-1:-1:-1;;;;;14830:52:10;-1:-1:-1;;;;;14830:52:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4467:1;;;;14591:298;;;;;:::o;15128:303::-;-1:-1:-1;;;;;4380:21:10;;;15301:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;15231:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;15280:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;15357:3;-1:-1:-1;;;;;15321:40:10;15331:10;-1:-1:-1;;;;;15321:40:10;;15343:12;15321:40;;;;;;;;;;;;;;15386:7;-1:-1:-1;;;;;15378:27:10;;15406:12;15420:3;15378:46;;;;;;;;-1:-1:-1;;;15378:46:10;;;;;;;;;;;;;-1:-1:-1;;;;;15378:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4467:1;;;;15128:303;;;;;;:::o;6454:341::-;-1:-1:-1;;;;;4380:21:10;;;6636:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;6565:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;6615:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;6701:7;-1:-1:-1;;;;;6656:53:10;6679:12;-1:-1:-1;;;;;6656:53:10;6667:10;-1:-1:-1;;;;;6656:53:10;;6693:7;6656:53;;;;;;;;;;;;;;-1:-1:-1;;;;;6726:22:10;;;:13;:22;;;;;;;;;;;:34;;;;;:39;;6766:12;;6780:7;;6726:13;:62;;;;;;-1:-1:-1;;;6726:62:10;;;;;;-1:-1:-1;;;;;6726:62:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;17554:454;-1:-1:-1;;;;;4380:21:10;;;17801:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;17711:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;17780:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;17862:14;-1:-1:-1;;;;;17821:77:10;17851:10;-1:-1:-1;;;;;17821:77:10;;17877:8;17886:11;17821:77;;-1:-1:-1;;;;;17821:77:10;;;;;;;;;;;;;;;;;;;;17923:7;-1:-1:-1;;;;;17915:47:10;;17963:14;17979:8;17989:11;17915:86;;;;;;;;-1:-1:-1;;;17915:86:10;;;;;;-1:-1:-1;;;;;17915:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4467:1;;;;17554:454;;;;;;;:::o;9398:306::-;9454:4;9474:38;9493:10;9504:7;9474:18;:38::i;:::-;:47;;9470:90;;-1:-1:-1;9544:5:10;9537:12;;9470:90;-1:-1:-1;;;;;9576:22:10;;;:13;:22;;;;;;;;;;;9607:10;9576:42;;;;;;:30;;;;:42;;;;;;9569:49;;;;;;;;;-1:-1:-1;;9569:49:10;;;9576:22;;:42;;;9628:48;;;;;;;;;;-1:-1:-1;9693:4:10;9398:306;;;;:::o;5861:357::-;-1:-1:-1;;;;;4380:21:10;;;6050:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;5975:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;6029:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;6119:7;-1:-1:-1;;;;;6070:57:10;6097:12;-1:-1:-1;;;;;6070:57:10;6085:10;-1:-1:-1;;;;;6070:57:10;;6111:7;6070:57;;;;;;;;;;;;;;-1:-1:-1;;;;;6144:22:10;;;:13;:22;;;;;;;;;;;:39;;;;;;;:44;;6189:12;;6203:7;;6144:13;:67;;;;;;-1:-1:-1;;;6144:67:10;;;;;;-1:-1:-1;;;;;6144:67:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;10284:150;-1:-1:-1;;;;;10380:22:10;10357:4;10380:22;;;;;;;;;;:40;;:47;;10284:150::o;10083:170::-;-1:-1:-1;;;;;10195:22:10;;;10170:6;10195:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;:51;;;-1:-1:-1;;;10195:51:10;10083:170;;;;:::o;9710:192::-;-1:-1:-1;;;;;9820:22:10;;;9796:4;9820:22;;;;;;;;;;;:39;;;;;:30;;;;:39;;;9879:1;9820:51;;-1:-1:-1;;;9820:51:10;;;:61;:74;;9710:192;;;;:::o;3718:576::-;-1:-1:-1;;;;;3803:31:10;;:13;:31;;;;;;;;;;:37;;;;;3802:38;3794:47;;;;;;3886:4;-1:-1:-1;;;;;3859:32:10;:7;-1:-1:-1;;;;;3859:13:10;;:15;;;;;;;;;;;-1:-1:-1;;;3859:15:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3859:32:10;;3851:41;;;;;;;;-1:-1:-1;;;;;3902:31:10;;:13;:31;;;;;;;;;;;:37;;:44;;-1:-1:-1;;3902:44:10;3942:4;3902:44;;;4002:19;;3902:13;4002:21;;;;;;;;;-1:-1:-1;;;4002:21:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3956:31:10;;;:13;:31;;;;;;;;;;;:67;;-1:-1:-1;;;;;;3956:67:10;;;;;;;;;;;;:31;-1:-1:-1;4084:24:10;;:26;;;;;;;;;-1:-1:-1;;;4084:26:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4033:31:10;;;:13;:31;;;;;;;;;;;;:48;;:77;;-1:-1:-1;;;;;;4033:77:10;;;;;;;;;;;:31;-1:-1:-1;4033:31:10;4174:57;;;;;;;;4202:1;4174:57;;;4218:11;4174:57;;;;;;;;-1:-1:-1;;;;;4120:31:10;;;;;;;;;;;4160:10;4120:51;;;;;:39;;:51;;;4174:57;4120:111;;;;;;;;;;;;;;-1:-1:-1;;4120:111:10;-1:-1:-1;;;4120:111:10;;;;;;;;;-1:-1:-1;;;;;;4241:46:10;;;;4268:10;4241:46;;;;;;;;;;;;3718:576;:::o;15761:395::-;-1:-1:-1;;;;;4380:21:10;;;15982:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;15900:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;15961:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;16052:3;-1:-1:-1;;;;;16002:62:10;16036:14;-1:-1:-1;;;;;16002:62:10;16024:10;-1:-1:-1;;;;;16002:62:10;;16057:6;16002:62;;;;;;;;;;;;;;16089:7;-1:-1:-1;;;;;16081:39:10;;16121:14;16137:3;16142:6;16081:68;;;;;;;;-1:-1:-1;;;16081:68:10;;;;;;-1:-1:-1;;;;;16081:68:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;18435:469;-1:-1:-1;;;;;4380:21:10;;;18687:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;18597:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;18666:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;18748:14;-1:-1:-1;;;;;18707:82:10;18737:10;-1:-1:-1;;;;;18707:82:10;;18763:8;18772:16;18707:82;;-1:-1:-1;;;;;18707:82:10;;;;;;;;;;;;;;;;;;;;18814:7;-1:-1:-1;;;;;18806:47:10;;18854:14;18870:8;18880:16;18806:91;;;;;;;;-1:-1:-1;;;18806:91:10;;;;;;-1:-1:-1;;;;;18806:91:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;10945:781;-1:-1:-1;;;;;4719:21:10;;;11090:4;4719:21;;;;;;;;;;;4749:10;4719:41;;;;;:29;;;;:41;;;;;:53;;;11090:4;;11073:7;;-1:-1:-1;;;4719:53:10;4786:9;4719:63;;;:76;4711:85;;;;;;-1:-1:-1;;;;;11146:22:10;;;:13;:22;;;;;;;;;;;11183:57;;;;;:38;;;:57;;;;;:66;11146:22;;-1:-1:-1;11183:66:10;;11182:67;11178:464;;;11265:30;;;:80;;;;;;:30;:80;;:::i;:::-;;;;;;;;;;;;11301:43;;;;;;;;-1:-1:-1;;;;;11301:43:10;;;;;;;;;;;11265:80;-1:-1:-1;11301:43:10;11265:80;;;-1:-1:-1;;;;;;11265:80:10;-1:-1:-1;;;;;11265:80:10;;;;;;;;;;;;;;;;-1:-1:-1;11419:70:10;;-1:-1:-1;11419:70:10;;;;;;;;;11444:4;11419:70;;11449:30;;;:37;-1:-1:-1;;11449:39:10;11419:70;;;;;;;;-1:-1:-1;;;;;11359:57:10;;11419:70;11359:57;;;:38;;;:57;;;;11419:70;11359:130;;;-1:-1:-1;;11359:130:10;;;;;;;;;;;;;;;;-1:-1:-1;11178:464:10;;;-1:-1:-1;;;;;11550:57:10;;;;;;:38;;;:57;;;;;:63;;;11519:30;;;:95;;11624:7;;11550:63;11519:95;;;;;;;;;;;;;;:102;:95;;;;;:102;:112;11178:464;11651:47;11671:17;11690:7;11651:47;;-1:-1:-1;;;;;11651:47:10;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11715:4:10;;10945:781;-1:-1:-1;;;;;10945:781:10:o;7127:1174::-;-1:-1:-1;;;;;4547:21:10;;;7339:4;4547:21;;;;;;;;;;;4577:10;4547:41;;;;;4621:1;4547:29;;;;:41;;;;;:53;;;7339:4;;;;7264:7;;-1:-1:-1;;;4547:53:10;4614:9;4547:63;;;:76;4539:85;;;;;;4986:630;7318:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;7385:13;:22;7399:7;-1:-1:-1;;;;;7385:22:10;-1:-1:-1;;;;;7385:22:10;;;;;;;;;;;;:30;;:39;7416:7;-1:-1:-1;;;;;7385:39:10;-1:-1:-1;;;;;7385:39:10;;;;;;;;;;;;:51;;;;;;;;;;-1:-1:-1;;;7385:51:10;7359:77;;7472:13;:22;7486:7;-1:-1:-1;;;;;7472:22:10;-1:-1:-1;;;;;7472:22:10;;;;;;;;;;;;:30;;:42;7503:10;-1:-1:-1;;;;;7472:42:10;-1:-1:-1;;;;;7472:42:10;;;;;;;;;;;;:54;;;;;;;;;;-1:-1:-1;;;7472:54:10;7446:80;;7897:1;-1:-1:-1;;;7890:9:10;7824:75;;;7869:16;7868:17;7849:16;7836:12;:29;7831:2;-1:-1:-1;;;7824:10:10;:42;:62;:75;;;;7816:84;;;;;;;;8003:10;8033:17;;8015:36;;8003:49;:62;7995:71;;;;;;8152:67;;;;;;;;;8171:11;8152:67;;;;;;;8215:1;-1:-1:-1;;;8208:9:10;8195:12;:22;8152:67;;;;;;8110:13;:22;8124:7;-1:-1:-1;;;;;8110:22:10;-1:-1:-1;;;;;8110:22:10;;;;;;;;;;;;:30;;:39;8141:7;-1:-1:-1;;;;;8110:39:10;-1:-1:-1;;;;;8110:39:10;;;;;;;;;;;;:109;;;;;;;;;;;;;;;;;-1:-1:-1;;8110:109:10;-1:-1:-1;;;8110:109:10;;;;;;;;;-1:-1:-1;;;;;;8229:44:10;;;;;;;;8244:10;8229:44;;;;;;;;;;;8290:4;8283:11;;5415:1;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4634:1;;;;7127:1174;;;;;;;;;:::o;16692:440::-;-1:-1:-1;;;;;4380:21:10;;;16936:4;4380:21;;;;;;;;;;;4410:10;4380:41;;;;;:29;;;;:41;;;;;4454:1;4380:53;;16850:7;;-1:-1:-1;;;4380:53:10;;;:63;;:76;4372:85;;;;;;4986:630;16915:7;5059:10;5079:43;;:::i;:::-;5125:13;:22;5139:7;-1:-1:-1;;;;;5125:22:10;-1:-1:-1;;;;;5125:22:10;;;;;;;;;;;;:40;;5079:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5079:86:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:1;5180:9;;5175:207;5196:17;:24;5190:5;:30;5175:207;;;5279:17;5297:5;5279:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5252:67:10;;5320:10;5332:17;5350:5;5332:24;;;;;;;;;;;;;;;;:31;;;5365:4;5252:118;;;;;;;;-1:-1:-1;;;5252:118:10;;;;;;-1:-1:-1;;;;;5252:118:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:127;;;;;;;;5221:7;;;;;5175:207;;;16994:14;-1:-1:-1;;;;;16956:73:10;16982:10;-1:-1:-1;;;;;16956:73:10;;17010:5;17017:3;17022:6;16956:73;;-1:-1:-1;;;;;16956:73:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17054:7;-1:-1:-1;;;;;17046:43:10;;17090:14;17106:5;17113:3;17118:6;17046:79;;;;;;;;-1:-1:-1;;;17046:79:10;;;;;;-1:-1:-1;;;;;17046:79:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5415:1:10;5407:9;;5402:208;5423:17;:24;5417:5;:30;5402:208;;;5506:17;5524:5;5506:24;;;;;;;;;;;;;;;;:34;-1:-1:-1;;;;;5479:68:10;;5548:10;5560:17;5578:5;5560:24;;;;;;;;;;;;;;;;:31;;;5593:4;5479:119;;;;;;;;-1:-1:-1;;;5479:119:10;;;;;;-1:-1:-1;;;;;5479:119:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:128;;;;;;;;5448:7;;;;;5402:208;;;4467:1;;;;16692:440;;;;;;;;:::o;504:18402::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;504:18402:10;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"./Avatar.sol\";\nimport \"./Reputation.sol\";\nimport \"./DAOToken.sol\";\nimport \"../globalConstraints/GlobalConstraintInterface.sol\";\nimport \"./ControllerInterface.sol\";\n\n\n/**\n * @title Universal Controller contract\n * @dev A universal controller hold organizations and controls their tokens ,reputations\n *       and avatar.\n * It is subject to a set of schemes and constraints that determine its behavior.\n * Each scheme has it own parameters and operation permissions.\n */\ncontract UController is ControllerInterface {\n\n    struct Scheme {\n        bytes32 paramsHash;  // a hash \"configuration\" of the scheme\n        bytes4  permissions; // A bitwise flags of permissions,\n                            // All 0: Not registered,\n                            // 1st bit: Flag if the scheme is registered,\n                            // 2nd bit: Scheme can register other schemes\n                            // 3th bit: Scheme can add/remove global constraints\n                            // 4rd bit: Scheme can upgrade the controller\n    }\n\n    struct GlobalConstraint {\n        address gcAddress;\n        bytes32 params;\n    }\n\n    struct GlobalConstraintRegister {\n        bool register; //is register\n        uint index;    //index at globalConstraints\n    }\n\n    struct Organization {\n        DAOToken                  nativeToken;\n        Reputation                nativeReputation;\n        mapping(address=>Scheme)  schemes;\n      // globalConstraints that determine pre- and post-conditions for all actions on the controller\n        GlobalConstraint[] globalConstraints;\n      // globalConstraintsRegister indicate is a globalConstraints is register or not\n        mapping(address=>GlobalConstraintRegister) globalConstraintsRegister;\n        bool exist;\n    }\n\n    //mapping between organization's avatar address to Organization\n    mapping(address=>Organization) organizations;\n  // newController will point to the new controller after the present controller is upgraded\n  //  address public newController;\n    mapping(address=>address) public newControllers;//mapping between avatar address and newController address\n\n    event MintReputation (address indexed _sender, address indexed _beneficiary, int256 _amount,address indexed _avatar);\n    event MintTokens (address indexed _sender, address indexed _beneficiary, uint256 _amount, address indexed _avatar);\n    event RegisterScheme (address indexed _sender, address indexed _scheme,address indexed _avatar);\n    event UnregisterScheme (address indexed _sender, address indexed _scheme, address indexed _avatar);\n    event GenericAction (address indexed _sender, bytes32[] _params);\n    event SendEther (address indexed _sender, uint _amountInWei, address indexed _to);\n    event ExternalTokenTransfer (address indexed _sender, address indexed _externalToken, address indexed _to, uint _value);\n    event ExternalTokenTransferFrom (address indexed _sender, address indexed _externalToken, address _from, address _to, uint _value);\n    event ExternalTokenIncreaseApproval (address indexed _sender, StandardToken indexed _externalToken, address _spender, uint _value);\n    event ExternalTokenDecreaseApproval (address indexed _sender, StandardToken indexed _externalToken, address _spender, uint _value);\n    event AddGlobalConstraint(address _globalconstraint, bytes32 _params);\n    event RemoveGlobalConstraint(address _globalConstraint ,uint256 _index);\n    event UpgradeController(address _oldController,address _newController,address _avatar);\n\n    function UController()public {}\n\n   /**\n    * @dev newOrganization set up a new organization with default genesisScheme.\n    * @param _avatar the organization avatar\n    */\n    function newOrganization(\n        Avatar _avatar\n    ) public\n    {\n        require(!organizations[address(_avatar)].exist);\n        require(_avatar.owner() == address(this));\n        organizations[address(_avatar)].exist = true;\n        organizations[address(_avatar)].nativeToken = _avatar.nativeToken();\n        organizations[address(_avatar)].nativeReputation = _avatar.nativeReputation();\n        organizations[address(_avatar)].schemes[msg.sender] = Scheme({paramsHash: bytes32(0),permissions: bytes4(0xF)});\n        RegisterScheme(msg.sender, msg.sender,_avatar);\n    }\n\n  // Modifiers:\n    modifier onlyRegisteredScheme(address avatar) {\n        require(organizations[avatar].schemes[msg.sender].permissions&bytes4(1) == bytes4(1));\n        _;\n    }\n\n    modifier onlyRegisteringSchemes(address avatar) {\n        require(organizations[avatar].schemes[msg.sender].permissions&bytes4(2) == bytes4(2));\n        _;\n    }\n\n    modifier onlyGlobalConstraintsScheme(address avatar) {\n        require(organizations[avatar].schemes[msg.sender].permissions&bytes4(4) == bytes4(4));\n        _;\n    }\n\n    modifier onlyUpgradingScheme(address _avatar) {\n        require(organizations[_avatar].schemes[msg.sender].permissions&bytes4(8) == bytes4(8));\n        _;\n    }\n\n    modifier onlySubjectToConstraint(bytes32 func,address _avatar) {\n        uint index;\n        GlobalConstraint[] memory globalConstraints = organizations[_avatar].globalConstraints;\n        for (index = 0;index<globalConstraints.length;index++) {\n            require((GlobalConstraintInterface(globalConstraints[index].gcAddress)).pre(msg.sender, globalConstraints[index].params, func));\n        }\n        _;\n        for (index = 0;index<globalConstraints.length;index++) {\n            require((GlobalConstraintInterface(globalConstraints[index].gcAddress)).post(msg.sender, globalConstraints[index].params, func));\n        }\n    }\n\n    /**\n     * @dev mint reputation .\n     * @param  _amount amount of reputation to mint\n     * @param _beneficiary beneficiary address\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function mintReputation(int256 _amount, address _beneficiary,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"mintReputation\",_avatar)\n    returns(bool)\n    {\n        MintReputation(msg.sender, _beneficiary, _amount,_avatar);\n        return organizations[_avatar].nativeReputation.mint(_beneficiary, _amount);\n    }\n\n    /**\n     * @dev mint tokens .\n     * @param  _amount amount of token to mint\n     * @param _beneficiary beneficiary address\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function mintTokens(uint256 _amount, address _beneficiary,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"mintTokens\",_avatar)\n    returns(bool)\n    {\n        MintTokens(msg.sender, _beneficiary, _amount,_avatar);\n        return organizations[_avatar].nativeToken.mint(_beneficiary, _amount);\n    }\n\n  /**\n   * @dev register or update a scheme\n   * @param _scheme the address of the scheme\n   * @param _paramsHash a hashed configuration of the usage of the scheme\n   * @param _permissions the permissions the new scheme will have\n   * @param _avatar the organization avatar.\n   * @return bool which represents a success\n   */\n    function registerScheme(address _scheme, bytes32 _paramsHash, bytes4 _permissions,address _avatar)\n    public\n    onlyRegisteringSchemes(_avatar)\n    onlySubjectToConstraint(\"registerScheme\",_avatar)\n    returns(bool)\n    {\n        bytes4 schemePermission = organizations[_avatar].schemes[_scheme].permissions;\n        bytes4 senderPermission = organizations[_avatar].schemes[msg.sender].permissions;\n    // Check scheme has at least the permissions it is changing, and at least the current permissions:\n    // Implementation is a bit messy. One must recall logic-circuits ^^\n\n    // produces non-zero if sender does not have all of the perms that are changing between old and new\n        require(bytes4(15)&(_permissions^schemePermission)&(~senderPermission) == bytes4(0));\n\n    // produces non-zero if sender does not have all of the perms in the old scheme\n        require(bytes4(15)&(schemePermission&(~senderPermission)) == bytes4(0));\n\n    // Add or change the scheme:\n        organizations[_avatar].schemes[_scheme] = Scheme({paramsHash:_paramsHash,permissions:_permissions|bytes4(1)});\n        RegisterScheme(msg.sender, _scheme, _avatar);\n        return true;\n    }\n\n    /**\n     * @dev unregister a scheme\n     * @param _scheme the address of the scheme\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function unregisterScheme(address _scheme,address _avatar)\n    public\n    onlyRegisteringSchemes(_avatar)\n    onlySubjectToConstraint(\"unregisterScheme\",_avatar)\n    returns(bool)\n    {\n        bytes4 schemePermission = organizations[_avatar].schemes[_scheme].permissions;\n    //check if the scheme is register\n        if (schemePermission&bytes4(1) == bytes4(0)) {\n            return false;\n          }\n    // Check the unregistering scheme has enough permissions:\n        require(bytes4(15)&(schemePermission&(~organizations[_avatar].schemes[msg.sender].permissions)) == bytes4(0));\n\n    // Unregister:\n        UnregisterScheme(msg.sender, _scheme,_avatar);\n        delete organizations[_avatar].schemes[_scheme];\n        return true;\n    }\n\n    /**\n     * @dev unregister the caller's scheme\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function unregisterSelf(address _avatar) public returns(bool) {\n        if (isSchemeRegistered(msg.sender,_avatar) == false) {\n            return false;\n        }\n        delete organizations[_avatar].schemes[msg.sender];\n        UnregisterScheme(msg.sender, msg.sender,_avatar);\n        return true;\n    }\n\n    function isSchemeRegistered( address _scheme,address _avatar) public constant returns(bool) {\n        return (organizations[_avatar].schemes[_scheme].permissions&bytes4(1) != bytes4(0));\n    }\n\n    function getSchemeParameters(address _scheme,address _avatar) public constant returns(bytes32) {\n        return organizations[_avatar].schemes[_scheme].paramsHash;\n    }\n\n    function getSchemePermissions(address _scheme,address _avatar) public constant returns(bytes4) {\n        return organizations[_avatar].schemes[_scheme].permissions;\n    }\n\n  // Global Constraints:\n    function globalConstraintsCount(address _avatar) public constant returns(uint) {\n        return organizations[_avatar].globalConstraints.length;\n    }\n\n    function isGlobalConstraintRegister(address _globalConstraint,address _avatar) public constant returns(bool) {\n        return organizations[_avatar].globalConstraintsRegister[_globalConstraint].register;\n    }\n\n    /**\n     * @dev add or update Global Constraint\n     * @param _globalConstraint the address of the global constraint to be added.\n     * @param _params the constraint parameters hash.\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function addGlobalConstraint(address _globalConstraint, bytes32 _params,address _avatar)\n    public onlyGlobalConstraintsScheme(_avatar) returns(bool)\n    {\n        Organization storage organization = organizations[_avatar];\n        if (!organization.globalConstraintsRegister[_globalConstraint].register) {\n            organization.globalConstraints.push(GlobalConstraint(_globalConstraint,_params));\n            organization.globalConstraintsRegister[_globalConstraint] = GlobalConstraintRegister(true,organization.globalConstraints.length-1);\n        }else {\n            organization.globalConstraints[organization.globalConstraintsRegister[_globalConstraint].index].params = _params;\n        }\n        AddGlobalConstraint(_globalConstraint, _params);\n        return true;\n    }\n\n    /**\n     * @dev remove Global Constraint\n     * @param _globalConstraint the address of the global constraint to be remove.\n     * @param _avatar the organization avatar.\n     * @return bool which represents a success\n     */\n    function removeGlobalConstraint (address _globalConstraint,address _avatar)\n    public onlyGlobalConstraintsScheme(_avatar) returns(bool)\n    {\n        GlobalConstraintRegister memory globalConstraintRegister = organizations[_avatar].globalConstraintsRegister[_globalConstraint];\n        GlobalConstraint[] storage globalConstraints = organizations[_avatar].globalConstraints;\n\n\n        if (globalConstraintRegister.register) {\n            if (globalConstraintRegister.index < globalConstraints.length-1) {\n                GlobalConstraint memory globalConstraint = organizations[_avatar].globalConstraints[globalConstraints.length-1];\n                globalConstraints[globalConstraintRegister.index] = globalConstraint;\n                organizations[_avatar].globalConstraintsRegister[globalConstraint.gcAddress].index = globalConstraintRegister.index;\n            }\n            globalConstraints.length--;\n            delete organizations[_avatar].globalConstraintsRegister[_globalConstraint];\n            RemoveGlobalConstraint(_globalConstraint,globalConstraintRegister.index);\n            return true;\n        }\n        return false;\n    }\n\n  /**\n    * @dev upgrade the Controller\n    *      The function will trigger an event 'UpgradeController'.\n    * @param  _newController the address of the new controller.\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function upgradeController(address _newController,address _avatar)\n    public onlyUpgradingScheme(_avatar) returns(bool)\n    {\n        require(newControllers[_avatar] == address(0));   // so the upgrade could be done once for a contract.\n        require(_newController != address(0));\n        newControllers[_avatar] = _newController;\n        (Avatar(_avatar)).transferOwnership(_newController);\n        if (organizations[_avatar].nativeToken.owner() == address(this)) {\n            organizations[_avatar].nativeToken.transferOwnership(_newController);\n        }\n        if (organizations[_avatar].nativeReputation.owner() == address(this)) {\n            organizations[_avatar].nativeReputation.transferOwnership(_newController);\n        }\n        UpgradeController(this,_newController,_avatar);\n        return true;\n    }\n\n    /**\n    * @dev do a generic delegate call to the contract which called us.\n    * This function use delegatecall and might expose the organization to security\n    * risk. Use this function only if you really knows what you are doing.\n    * @param _params the params for the call.\n    * @param _avatar the organization avatar.\n    * @return bool which represents success\n    */\n    function genericAction(bytes32[] _params,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"genericAction\",_avatar)\n    returns(bool)\n    {\n        GenericAction(msg.sender, _params);\n        return (Avatar(_avatar)).genericAction(msg.sender, _params);\n    }\n\n  /**\n   * @dev send some ether\n   * @param _amountInWei the amount of ether (in Wei) to send\n   * @param _to address of the beneficiary\n   * @param _avatar the organization avatar.\n   * @return bool which represents a success\n   */\n    function sendEther(uint _amountInWei, address _to,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"sendEther\",_avatar)\n    returns(bool)\n    {\n        SendEther(msg.sender, _amountInWei, _to);\n        return (Avatar(_avatar)).sendEther(_amountInWei, _to);\n    }\n\n    /**\n    * @dev send some amount of arbitrary ERC20 Tokens\n    * @param _externalToken the address of the Token Contract\n    * @param _to address of the beneficiary\n    * @param _value the amount of ether (in Wei) to send\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function externalTokenTransfer(StandardToken _externalToken, address _to, uint _value,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"externalTokenTransfer\",_avatar)\n    returns(bool)\n    {\n        ExternalTokenTransfer(msg.sender, _externalToken, _to, _value);\n        return (Avatar(_avatar)).externalTokenTransfer(_externalToken, _to, _value);\n    }\n\n    /**\n    * @dev transfer token \"from\" address \"to\" address\n    *      One must to approve the amount of tokens which can be spend from the\n    *      \"from\" account.This can be done using externalTokenApprove.\n    * @param _externalToken the address of the Token Contract\n    * @param _from address of the account to send from\n    * @param _to address of the beneficiary\n    * @param _value the amount of ether (in Wei) to send\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function externalTokenTransferFrom(StandardToken _externalToken, address _from, address _to, uint _value,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"externalTokenTransferFrom\",_avatar)\n    returns(bool)\n    {\n        ExternalTokenTransferFrom(msg.sender, _externalToken, _from, _to, _value);\n        return (Avatar(_avatar)).externalTokenTransferFrom(_externalToken, _from, _to, _value);\n    }\n\n    /**\n    * @dev increase approval for the spender address to spend a specified amount of tokens\n    *      on behalf of msg.sender.\n    * @param _externalToken the address of the Token Contract\n    * @param _spender address\n    * @param _addedValue the amount of ether (in Wei) which the approval is referring to.\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function externalTokenIncreaseApproval(StandardToken _externalToken, address _spender, uint _addedValue,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"externalTokenIncreaseApproval\",_avatar)\n    returns(bool)\n    {\n        ExternalTokenIncreaseApproval(msg.sender,_externalToken,_spender,_addedValue);\n        return (Avatar(_avatar)).externalTokenIncreaseApproval(_externalToken, _spender, _addedValue);\n    }\n\n    /**\n    * @dev decrease approval for the spender address to spend a specified amount of tokens\n    *      on behalf of msg.sender.\n    * @param _externalToken the address of the Token Contract\n    * @param _spender address\n    * @param _subtractedValue the amount of ether (in Wei) which the approval is referring to.\n    * @param _avatar the organization avatar.\n    * @return bool which represents a success\n    */\n    function externalTokenDecreaseApproval(StandardToken _externalToken, address _spender, uint _subtractedValue,address _avatar)\n    public\n    onlyRegisteredScheme(_avatar)\n    onlySubjectToConstraint(\"externalTokenDecreaseApproval\",_avatar)\n    returns(bool)\n    {\n        ExternalTokenDecreaseApproval(msg.sender,_externalToken,_spender,_subtractedValue);\n        return (Avatar(_avatar)).externalTokenDecreaseApproval(_externalToken, _spender, _subtractedValue);\n    }\n}\n",
  "sourcePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/UController.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/UController.sol",
      "exportedSymbols": {
        "UController": [
          5885
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 4566,
        "name": "PragmaDirective",
        "src": "0:24:10"
      },
      {
        "attributes": {
          "SourceUnit": 3066,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Avatar.sol",
          "file": "./Avatar.sol",
          "scope": 5886,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4567,
        "name": "ImportDirective",
        "src": "26:22:10"
      },
      {
        "attributes": {
          "SourceUnit": 4565,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/Reputation.sol",
          "file": "./Reputation.sol",
          "scope": 5886,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4568,
        "name": "ImportDirective",
        "src": "49:26:10"
      },
      {
        "attributes": {
          "SourceUnit": 4400,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/DAOToken.sol",
          "file": "./DAOToken.sol",
          "scope": 5886,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4569,
        "name": "ImportDirective",
        "src": "76:24:10"
      },
      {
        "attributes": {
          "SourceUnit": 5911,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/globalConstraints/GlobalConstraintInterface.sol",
          "file": "../globalConstraints/GlobalConstraintInterface.sol",
          "scope": 5886,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4570,
        "name": "ImportDirective",
        "src": "101:60:10"
      },
      {
        "attributes": {
          "SourceUnit": 4365,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/controller/ControllerInterface.sol",
          "file": "./ControllerInterface.sol",
          "scope": 5886,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4571,
        "name": "ImportDirective",
        "src": "162:35:10"
      },
      {
        "attributes": {
          "contractDependencies": [
            4364
          ],
          "contractKind": "contract",
          "documentation": "@title Universal Controller contract\n@dev A universal controller hold organizations and controls their tokens ,reputations\n      and avatar.\nIt is subject to a set of schemes and constraints that determine its behavior.\nEach scheme has it own parameters and operation permissions.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            5885,
            4364
          ],
          "name": "UController",
          "scope": 5886
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ControllerInterface",
                  "referencedDeclaration": 4364,
                  "type": "contract ControllerInterface"
                },
                "id": 4572,
                "name": "UserDefinedTypeName",
                "src": "528:19:10"
              }
            ],
            "id": 4573,
            "name": "InheritanceSpecifier",
            "src": "528:19:10"
          },
          {
            "attributes": {
              "canonicalName": "UController.Scheme",
              "name": "Scheme",
              "scope": 5885,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "paramsHash",
                  "scope": 4578,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 4574,
                    "name": "ElementaryTypeName",
                    "src": "579:7:10"
                  }
                ],
                "id": 4575,
                "name": "VariableDeclaration",
                "src": "579:18:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "permissions",
                  "scope": 4578,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes4",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes4",
                      "type": "bytes4"
                    },
                    "id": 4576,
                    "name": "ElementaryTypeName",
                    "src": "648:6:10"
                  }
                ],
                "id": 4577,
                "name": "VariableDeclaration",
                "src": "648:19:10"
              }
            ],
            "id": 4578,
            "name": "StructDefinition",
            "src": "555:511:10"
          },
          {
            "attributes": {
              "canonicalName": "UController.GlobalConstraint",
              "name": "GlobalConstraint",
              "scope": 5885,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "gcAddress",
                  "scope": 4583,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 4579,
                    "name": "ElementaryTypeName",
                    "src": "1106:7:10"
                  }
                ],
                "id": 4580,
                "name": "VariableDeclaration",
                "src": "1106:17:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "params",
                  "scope": 4583,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 4581,
                    "name": "ElementaryTypeName",
                    "src": "1133:7:10"
                  }
                ],
                "id": 4582,
                "name": "VariableDeclaration",
                "src": "1133:14:10"
              }
            ],
            "id": 4583,
            "name": "StructDefinition",
            "src": "1072:82:10"
          },
          {
            "attributes": {
              "canonicalName": "UController.GlobalConstraintRegister",
              "name": "GlobalConstraintRegister",
              "scope": 5885,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "register",
                  "scope": 4588,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bool",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bool",
                      "type": "bool"
                    },
                    "id": 4584,
                    "name": "ElementaryTypeName",
                    "src": "1202:4:10"
                  }
                ],
                "id": 4585,
                "name": "VariableDeclaration",
                "src": "1202:13:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "index",
                  "scope": 4588,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 4586,
                    "name": "ElementaryTypeName",
                    "src": "1239:4:10"
                  }
                ],
                "id": 4587,
                "name": "VariableDeclaration",
                "src": "1239:10:10"
              }
            ],
            "id": 4588,
            "name": "StructDefinition",
            "src": "1160:128:10"
          },
          {
            "attributes": {
              "canonicalName": "UController.Organization",
              "name": "Organization",
              "scope": 5885,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "nativeToken",
                  "scope": 4606,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract DAOToken",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "DAOToken",
                      "referencedDeclaration": 4399,
                      "type": "contract DAOToken"
                    },
                    "id": 4589,
                    "name": "UserDefinedTypeName",
                    "src": "1324:8:10"
                  }
                ],
                "id": 4590,
                "name": "VariableDeclaration",
                "src": "1324:37:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "nativeReputation",
                  "scope": 4606,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract Reputation",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Reputation",
                      "referencedDeclaration": 4564,
                      "type": "contract Reputation"
                    },
                    "id": 4591,
                    "name": "UserDefinedTypeName",
                    "src": "1371:10:10"
                  }
                ],
                "id": 4592,
                "name": "VariableDeclaration",
                "src": "1371:42:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "schemes",
                  "scope": 4606,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(address => struct UController.Scheme storage ref)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(address => struct UController.Scheme storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4593,
                        "name": "ElementaryTypeName",
                        "src": "1431:7:10"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Scheme",
                          "referencedDeclaration": 4578,
                          "type": "struct UController.Scheme storage pointer"
                        },
                        "id": 4594,
                        "name": "UserDefinedTypeName",
                        "src": "1440:6:10"
                      }
                    ],
                    "id": 4595,
                    "name": "Mapping",
                    "src": "1423:24:10"
                  }
                ],
                "id": 4596,
                "name": "VariableDeclaration",
                "src": "1423:33:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "globalConstraints",
                  "scope": 4606,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "length": null,
                      "type": "struct UController.GlobalConstraint storage ref[] storage pointer"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "GlobalConstraint",
                          "referencedDeclaration": 4583,
                          "type": "struct UController.GlobalConstraint storage pointer"
                        },
                        "id": 4597,
                        "name": "UserDefinedTypeName",
                        "src": "1567:16:10"
                      }
                    ],
                    "id": 4598,
                    "name": "ArrayTypeName",
                    "src": "1567:18:10"
                  }
                ],
                "id": 4599,
                "name": "VariableDeclaration",
                "src": "1567:36:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "globalConstraintsRegister",
                  "scope": 4606,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4600,
                        "name": "ElementaryTypeName",
                        "src": "1707:7:10"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "GlobalConstraintRegister",
                          "referencedDeclaration": 4588,
                          "type": "struct UController.GlobalConstraintRegister storage pointer"
                        },
                        "id": 4601,
                        "name": "UserDefinedTypeName",
                        "src": "1716:24:10"
                      }
                    ],
                    "id": 4602,
                    "name": "Mapping",
                    "src": "1699:42:10"
                  }
                ],
                "id": 4603,
                "name": "VariableDeclaration",
                "src": "1699:68:10"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "exist",
                  "scope": 4606,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bool",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bool",
                      "type": "bool"
                    },
                    "id": 4604,
                    "name": "ElementaryTypeName",
                    "src": "1777:4:10"
                  }
                ],
                "id": 4605,
                "name": "VariableDeclaration",
                "src": "1777:10:10"
              }
            ],
            "id": 4606,
            "name": "StructDefinition",
            "src": "1294:500:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organizations",
              "scope": 5885,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => struct UController.Organization storage ref)",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => struct UController.Organization storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 4607,
                    "name": "ElementaryTypeName",
                    "src": "1876:7:10"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Organization",
                      "referencedDeclaration": 4606,
                      "type": "struct UController.Organization storage pointer"
                    },
                    "id": 4608,
                    "name": "UserDefinedTypeName",
                    "src": "1885:12:10"
                  }
                ],
                "id": 4609,
                "name": "Mapping",
                "src": "1868:30:10"
              }
            ],
            "id": 4610,
            "name": "VariableDeclaration",
            "src": "1868:44:10"
          },
          {
            "attributes": {
              "constant": false,
              "name": "newControllers",
              "scope": 5885,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => address)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => address)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 4611,
                    "name": "ElementaryTypeName",
                    "src": "2055:7:10"
                  },
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 4612,
                    "name": "ElementaryTypeName",
                    "src": "2064:7:10"
                  }
                ],
                "id": 4613,
                "name": "Mapping",
                "src": "2047:25:10"
              }
            ],
            "id": 4614,
            "name": "VariableDeclaration",
            "src": "2047:47:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "MintReputation"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4624,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4615,
                        "name": "ElementaryTypeName",
                        "src": "2181:7:10"
                      }
                    ],
                    "id": 4616,
                    "name": "VariableDeclaration",
                    "src": "2181:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_beneficiary",
                      "scope": 4624,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4617,
                        "name": "ElementaryTypeName",
                        "src": "2206:7:10"
                      }
                    ],
                    "id": 4618,
                    "name": "VariableDeclaration",
                    "src": "2206:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amount",
                      "scope": 4624,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 4619,
                        "name": "ElementaryTypeName",
                        "src": "2236:6:10"
                      }
                    ],
                    "id": 4620,
                    "name": "VariableDeclaration",
                    "src": "2236:14:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 4624,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4621,
                        "name": "ElementaryTypeName",
                        "src": "2251:7:10"
                      }
                    ],
                    "id": 4622,
                    "name": "VariableDeclaration",
                    "src": "2251:23:10"
                  }
                ],
                "id": 4623,
                "name": "ParameterList",
                "src": "2180:95:10"
              }
            ],
            "id": 4624,
            "name": "EventDefinition",
            "src": "2159:117:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "MintTokens"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4634,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4625,
                        "name": "ElementaryTypeName",
                        "src": "2299:7:10"
                      }
                    ],
                    "id": 4626,
                    "name": "VariableDeclaration",
                    "src": "2299:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_beneficiary",
                      "scope": 4634,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4627,
                        "name": "ElementaryTypeName",
                        "src": "2324:7:10"
                      }
                    ],
                    "id": 4628,
                    "name": "VariableDeclaration",
                    "src": "2324:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amount",
                      "scope": 4634,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 4629,
                        "name": "ElementaryTypeName",
                        "src": "2354:7:10"
                      }
                    ],
                    "id": 4630,
                    "name": "VariableDeclaration",
                    "src": "2354:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 4634,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4631,
                        "name": "ElementaryTypeName",
                        "src": "2371:7:10"
                      }
                    ],
                    "id": 4632,
                    "name": "VariableDeclaration",
                    "src": "2371:23:10"
                  }
                ],
                "id": 4633,
                "name": "ParameterList",
                "src": "2298:97:10"
              }
            ],
            "id": 4634,
            "name": "EventDefinition",
            "src": "2281:115:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RegisterScheme"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4642,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4635,
                        "name": "ElementaryTypeName",
                        "src": "2423:7:10"
                      }
                    ],
                    "id": 4636,
                    "name": "VariableDeclaration",
                    "src": "2423:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_scheme",
                      "scope": 4642,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4637,
                        "name": "ElementaryTypeName",
                        "src": "2448:7:10"
                      }
                    ],
                    "id": 4638,
                    "name": "VariableDeclaration",
                    "src": "2448:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 4642,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4639,
                        "name": "ElementaryTypeName",
                        "src": "2472:7:10"
                      }
                    ],
                    "id": 4640,
                    "name": "VariableDeclaration",
                    "src": "2472:23:10"
                  }
                ],
                "id": 4641,
                "name": "ParameterList",
                "src": "2422:74:10"
              }
            ],
            "id": 4642,
            "name": "EventDefinition",
            "src": "2401:96:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "UnregisterScheme"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4650,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4643,
                        "name": "ElementaryTypeName",
                        "src": "2526:7:10"
                      }
                    ],
                    "id": 4644,
                    "name": "VariableDeclaration",
                    "src": "2526:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_scheme",
                      "scope": 4650,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4645,
                        "name": "ElementaryTypeName",
                        "src": "2551:7:10"
                      }
                    ],
                    "id": 4646,
                    "name": "VariableDeclaration",
                    "src": "2551:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 4650,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4647,
                        "name": "ElementaryTypeName",
                        "src": "2576:7:10"
                      }
                    ],
                    "id": 4648,
                    "name": "VariableDeclaration",
                    "src": "2576:23:10"
                  }
                ],
                "id": 4649,
                "name": "ParameterList",
                "src": "2525:75:10"
              }
            ],
            "id": 4650,
            "name": "EventDefinition",
            "src": "2502:99:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "GenericAction"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4657,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4651,
                        "name": "ElementaryTypeName",
                        "src": "2627:7:10"
                      }
                    ],
                    "id": 4652,
                    "name": "VariableDeclaration",
                    "src": "2627:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 4657,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 4653,
                            "name": "ElementaryTypeName",
                            "src": "2652:7:10"
                          }
                        ],
                        "id": 4654,
                        "name": "ArrayTypeName",
                        "src": "2652:9:10"
                      }
                    ],
                    "id": 4655,
                    "name": "VariableDeclaration",
                    "src": "2652:17:10"
                  }
                ],
                "id": 4656,
                "name": "ParameterList",
                "src": "2626:44:10"
              }
            ],
            "id": 4657,
            "name": "EventDefinition",
            "src": "2606:65:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "SendEther"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4665,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4658,
                        "name": "ElementaryTypeName",
                        "src": "2693:7:10"
                      }
                    ],
                    "id": 4659,
                    "name": "VariableDeclaration",
                    "src": "2693:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_amountInWei",
                      "scope": 4665,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4660,
                        "name": "ElementaryTypeName",
                        "src": "2718:4:10"
                      }
                    ],
                    "id": 4661,
                    "name": "VariableDeclaration",
                    "src": "2718:17:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 4665,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4662,
                        "name": "ElementaryTypeName",
                        "src": "2737:7:10"
                      }
                    ],
                    "id": 4663,
                    "name": "VariableDeclaration",
                    "src": "2737:19:10"
                  }
                ],
                "id": 4664,
                "name": "ParameterList",
                "src": "2692:65:10"
              }
            ],
            "id": 4665,
            "name": "EventDefinition",
            "src": "2676:82:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransfer"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4675,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4666,
                        "name": "ElementaryTypeName",
                        "src": "2792:7:10"
                      }
                    ],
                    "id": 4667,
                    "name": "VariableDeclaration",
                    "src": "2792:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 4675,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4668,
                        "name": "ElementaryTypeName",
                        "src": "2817:7:10"
                      }
                    ],
                    "id": 4669,
                    "name": "VariableDeclaration",
                    "src": "2817:30:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_to",
                      "scope": 4675,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4670,
                        "name": "ElementaryTypeName",
                        "src": "2849:7:10"
                      }
                    ],
                    "id": 4671,
                    "name": "VariableDeclaration",
                    "src": "2849:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 4675,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4672,
                        "name": "ElementaryTypeName",
                        "src": "2870:4:10"
                      }
                    ],
                    "id": 4673,
                    "name": "VariableDeclaration",
                    "src": "2870:11:10"
                  }
                ],
                "id": 4674,
                "name": "ParameterList",
                "src": "2791:91:10"
              }
            ],
            "id": 4675,
            "name": "EventDefinition",
            "src": "2763:120:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenTransferFrom"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4687,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4676,
                        "name": "ElementaryTypeName",
                        "src": "2921:7:10"
                      }
                    ],
                    "id": 4677,
                    "name": "VariableDeclaration",
                    "src": "2921:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 4687,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4678,
                        "name": "ElementaryTypeName",
                        "src": "2946:7:10"
                      }
                    ],
                    "id": 4679,
                    "name": "VariableDeclaration",
                    "src": "2946:30:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_from",
                      "scope": 4687,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4680,
                        "name": "ElementaryTypeName",
                        "src": "2978:7:10"
                      }
                    ],
                    "id": 4681,
                    "name": "VariableDeclaration",
                    "src": "2978:13:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_to",
                      "scope": 4687,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4682,
                        "name": "ElementaryTypeName",
                        "src": "2993:7:10"
                      }
                    ],
                    "id": 4683,
                    "name": "VariableDeclaration",
                    "src": "2993:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 4687,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4684,
                        "name": "ElementaryTypeName",
                        "src": "3006:4:10"
                      }
                    ],
                    "id": 4685,
                    "name": "VariableDeclaration",
                    "src": "3006:11:10"
                  }
                ],
                "id": 4686,
                "name": "ParameterList",
                "src": "2920:98:10"
              }
            ],
            "id": 4687,
            "name": "EventDefinition",
            "src": "2888:131:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenIncreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4697,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4688,
                        "name": "ElementaryTypeName",
                        "src": "3061:7:10"
                      }
                    ],
                    "id": 4689,
                    "name": "VariableDeclaration",
                    "src": "3061:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 4697,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10889,
                          "type": "contract StandardToken"
                        },
                        "id": 4690,
                        "name": "UserDefinedTypeName",
                        "src": "3086:13:10"
                      }
                    ],
                    "id": 4691,
                    "name": "VariableDeclaration",
                    "src": "3086:36:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 4697,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4692,
                        "name": "ElementaryTypeName",
                        "src": "3124:7:10"
                      }
                    ],
                    "id": 4693,
                    "name": "VariableDeclaration",
                    "src": "3124:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 4697,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4694,
                        "name": "ElementaryTypeName",
                        "src": "3142:4:10"
                      }
                    ],
                    "id": 4695,
                    "name": "VariableDeclaration",
                    "src": "3142:11:10"
                  }
                ],
                "id": 4696,
                "name": "ParameterList",
                "src": "3060:94:10"
              }
            ],
            "id": 4697,
            "name": "EventDefinition",
            "src": "3024:131:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ExternalTokenDecreaseApproval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_sender",
                      "scope": 4707,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4698,
                        "name": "ElementaryTypeName",
                        "src": "3197:7:10"
                      }
                    ],
                    "id": 4699,
                    "name": "VariableDeclaration",
                    "src": "3197:23:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_externalToken",
                      "scope": 4707,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10889,
                          "type": "contract StandardToken"
                        },
                        "id": 4700,
                        "name": "UserDefinedTypeName",
                        "src": "3222:13:10"
                      }
                    ],
                    "id": 4701,
                    "name": "VariableDeclaration",
                    "src": "3222:36:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_spender",
                      "scope": 4707,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4702,
                        "name": "ElementaryTypeName",
                        "src": "3260:7:10"
                      }
                    ],
                    "id": 4703,
                    "name": "VariableDeclaration",
                    "src": "3260:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_value",
                      "scope": 4707,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 4704,
                        "name": "ElementaryTypeName",
                        "src": "3278:4:10"
                      }
                    ],
                    "id": 4705,
                    "name": "VariableDeclaration",
                    "src": "3278:11:10"
                  }
                ],
                "id": 4706,
                "name": "ParameterList",
                "src": "3196:94:10"
              }
            ],
            "id": 4707,
            "name": "EventDefinition",
            "src": "3160:131:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "AddGlobalConstraint"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_globalconstraint",
                      "scope": 4713,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4708,
                        "name": "ElementaryTypeName",
                        "src": "3322:7:10"
                      }
                    ],
                    "id": 4709,
                    "name": "VariableDeclaration",
                    "src": "3322:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 4713,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 4710,
                        "name": "ElementaryTypeName",
                        "src": "3349:7:10"
                      }
                    ],
                    "id": 4711,
                    "name": "VariableDeclaration",
                    "src": "3349:15:10"
                  }
                ],
                "id": 4712,
                "name": "ParameterList",
                "src": "3321:44:10"
              }
            ],
            "id": 4713,
            "name": "EventDefinition",
            "src": "3296:70:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RemoveGlobalConstraint"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_globalConstraint",
                      "scope": 4719,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4714,
                        "name": "ElementaryTypeName",
                        "src": "3400:7:10"
                      }
                    ],
                    "id": 4715,
                    "name": "VariableDeclaration",
                    "src": "3400:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_index",
                      "scope": 4719,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 4716,
                        "name": "ElementaryTypeName",
                        "src": "3427:7:10"
                      }
                    ],
                    "id": 4717,
                    "name": "VariableDeclaration",
                    "src": "3427:14:10"
                  }
                ],
                "id": 4718,
                "name": "ParameterList",
                "src": "3399:43:10"
              }
            ],
            "id": 4719,
            "name": "EventDefinition",
            "src": "3371:72:10"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "UpgradeController"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_oldController",
                      "scope": 4727,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4720,
                        "name": "ElementaryTypeName",
                        "src": "3472:7:10"
                      }
                    ],
                    "id": 4721,
                    "name": "VariableDeclaration",
                    "src": "3472:22:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_newController",
                      "scope": 4727,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4722,
                        "name": "ElementaryTypeName",
                        "src": "3495:7:10"
                      }
                    ],
                    "id": 4723,
                    "name": "VariableDeclaration",
                    "src": "3495:22:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_avatar",
                      "scope": 4727,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4724,
                        "name": "ElementaryTypeName",
                        "src": "3518:7:10"
                      }
                    ],
                    "id": 4725,
                    "name": "VariableDeclaration",
                    "src": "3518:15:10"
                  }
                ],
                "id": 4726,
                "name": "ParameterList",
                "src": "3471:63:10"
              }
            ],
            "id": 4727,
            "name": "EventDefinition",
            "src": "3448:87:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "UController",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 4728,
                "name": "ParameterList",
                "src": "3561:2:10"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 4729,
                "name": "ParameterList",
                "src": "3570:0:10"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 4730,
                "name": "Block",
                "src": "3570:2:10"
              }
            ],
            "id": 4731,
            "name": "FunctionDefinition",
            "src": "3541:31:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "newOrganization",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 4815,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3065,
                          "type": "contract Avatar"
                        },
                        "id": 4732,
                        "name": "UserDefinedTypeName",
                        "src": "3752:6:10"
                      }
                    ],
                    "id": 4733,
                    "name": "VariableDeclaration",
                    "src": "3752:14:10"
                  }
                ],
                "id": 4734,
                "name": "ParameterList",
                "src": "3742:30:10"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 4735,
                "name": "ParameterList",
                "src": "3784:0:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4736,
                            "name": "Identifier",
                            "src": "3794:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!",
                              "prefix": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "exist",
                                  "referencedDeclaration": 4605,
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 4737,
                                        "name": "Identifier",
                                        "src": "3803:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "address",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(address)",
                                              "value": "address"
                                            },
                                            "id": 4738,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "3817:7:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4733,
                                              "type": "contract Avatar",
                                              "value": "_avatar"
                                            },
                                            "id": 4739,
                                            "name": "Identifier",
                                            "src": "3825:7:10"
                                          }
                                        ],
                                        "id": 4740,
                                        "name": "FunctionCall",
                                        "src": "3817:16:10"
                                      }
                                    ],
                                    "id": 4741,
                                    "name": "IndexAccess",
                                    "src": "3803:31:10"
                                  }
                                ],
                                "id": 4742,
                                "name": "MemberAccess",
                                "src": "3803:37:10"
                              }
                            ],
                            "id": 4743,
                            "name": "UnaryOperation",
                            "src": "3802:38:10"
                          }
                        ],
                        "id": 4744,
                        "name": "FunctionCall",
                        "src": "3794:47:10"
                      }
                    ],
                    "id": 4745,
                    "name": "ExpressionStatement",
                    "src": "3794:47:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4746,
                            "name": "Identifier",
                            "src": "3851:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "owner",
                                      "referencedDeclaration": 10283,
                                      "type": "function () view external returns (address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4733,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 4747,
                                        "name": "Identifier",
                                        "src": "3859:7:10"
                                      }
                                    ],
                                    "id": 4748,
                                    "name": "MemberAccess",
                                    "src": "3859:13:10"
                                  }
                                ],
                                "id": 4749,
                                "name": "FunctionCall",
                                "src": "3859:15:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_UController_$5885",
                                          "typeString": "contract UController"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 4750,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "3878:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10960,
                                      "type": "contract UController",
                                      "value": "this"
                                    },
                                    "id": 4751,
                                    "name": "Identifier",
                                    "src": "3886:4:10"
                                  }
                                ],
                                "id": 4752,
                                "name": "FunctionCall",
                                "src": "3878:13:10"
                              }
                            ],
                            "id": 4753,
                            "name": "BinaryOperation",
                            "src": "3859:32:10"
                          }
                        ],
                        "id": 4754,
                        "name": "FunctionCall",
                        "src": "3851:41:10"
                      }
                    ],
                    "id": 4755,
                    "name": "ExpressionStatement",
                    "src": "3851:41:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "exist",
                              "referencedDeclaration": 4605,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4610,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 4756,
                                    "name": "Identifier",
                                    "src": "3902:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 4757,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "3916:7:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4733,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 4758,
                                        "name": "Identifier",
                                        "src": "3924:7:10"
                                      }
                                    ],
                                    "id": 4759,
                                    "name": "FunctionCall",
                                    "src": "3916:16:10"
                                  }
                                ],
                                "id": 4760,
                                "name": "IndexAccess",
                                "src": "3902:31:10"
                              }
                            ],
                            "id": 4761,
                            "name": "MemberAccess",
                            "src": "3902:37:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 4762,
                            "name": "Literal",
                            "src": "3942:4:10"
                          }
                        ],
                        "id": 4763,
                        "name": "Assignment",
                        "src": "3902:44:10"
                      }
                    ],
                    "id": 4764,
                    "name": "ExpressionStatement",
                    "src": "3902:44:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract DAOToken"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "nativeToken",
                              "referencedDeclaration": 4590,
                              "type": "contract DAOToken"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4610,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 4765,
                                    "name": "Identifier",
                                    "src": "3956:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 4766,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "3970:7:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4733,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 4767,
                                        "name": "Identifier",
                                        "src": "3978:7:10"
                                      }
                                    ],
                                    "id": 4768,
                                    "name": "FunctionCall",
                                    "src": "3970:16:10"
                                  }
                                ],
                                "id": 4769,
                                "name": "IndexAccess",
                                "src": "3956:31:10"
                              }
                            ],
                            "id": 4770,
                            "name": "MemberAccess",
                            "src": "3956:43:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract DAOToken",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeToken",
                                  "referencedDeclaration": 2796,
                                  "type": "function () view external returns (contract DAOToken)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4733,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 4771,
                                    "name": "Identifier",
                                    "src": "4002:7:10"
                                  }
                                ],
                                "id": 4772,
                                "name": "MemberAccess",
                                "src": "4002:19:10"
                              }
                            ],
                            "id": 4773,
                            "name": "FunctionCall",
                            "src": "4002:21:10"
                          }
                        ],
                        "id": 4774,
                        "name": "Assignment",
                        "src": "3956:67:10"
                      }
                    ],
                    "id": 4775,
                    "name": "ExpressionStatement",
                    "src": "3956:67:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract Reputation"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "nativeReputation",
                              "referencedDeclaration": 4592,
                              "type": "contract Reputation"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4610,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 4776,
                                    "name": "Identifier",
                                    "src": "4033:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_Avatar_$3065",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(address)",
                                          "value": "address"
                                        },
                                        "id": 4777,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4047:7:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4733,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 4778,
                                        "name": "Identifier",
                                        "src": "4055:7:10"
                                      }
                                    ],
                                    "id": 4779,
                                    "name": "FunctionCall",
                                    "src": "4047:16:10"
                                  }
                                ],
                                "id": 4780,
                                "name": "IndexAccess",
                                "src": "4033:31:10"
                              }
                            ],
                            "id": 4781,
                            "name": "MemberAccess",
                            "src": "4033:48:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract Reputation",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeReputation",
                                  "referencedDeclaration": 2798,
                                  "type": "function () view external returns (contract Reputation)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4733,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 4782,
                                    "name": "Identifier",
                                    "src": "4084:7:10"
                                  }
                                ],
                                "id": 4783,
                                "name": "MemberAccess",
                                "src": "4084:24:10"
                              }
                            ],
                            "id": 4784,
                            "name": "FunctionCall",
                            "src": "4084:26:10"
                          }
                        ],
                        "id": 4785,
                        "name": "Assignment",
                        "src": "4033:77:10"
                      }
                    ],
                    "id": 4786,
                    "name": "ExpressionStatement",
                    "src": "4033:77:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct UController.Scheme storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4596,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 4787,
                                        "name": "Identifier",
                                        "src": "4120:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "address",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(address)",
                                              "value": "address"
                                            },
                                            "id": 4788,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "4134:7:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4733,
                                              "type": "contract Avatar",
                                              "value": "_avatar"
                                            },
                                            "id": 4789,
                                            "name": "Identifier",
                                            "src": "4142:7:10"
                                          }
                                        ],
                                        "id": 4790,
                                        "name": "FunctionCall",
                                        "src": "4134:16:10"
                                      }
                                    ],
                                    "id": 4791,
                                    "name": "IndexAccess",
                                    "src": "4120:31:10"
                                  }
                                ],
                                "id": 4792,
                                "name": "MemberAccess",
                                "src": "4120:39:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10901,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 4793,
                                    "name": "Identifier",
                                    "src": "4160:3:10"
                                  }
                                ],
                                "id": 4794,
                                "name": "MemberAccess",
                                "src": "4160:10:10"
                              }
                            ],
                            "id": 4795,
                            "name": "IndexAccess",
                            "src": "4120:51:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": true,
                              "lValueRequested": false,
                              "names": [
                                "paramsHash",
                                "permissions"
                              ],
                              "type": "struct UController.Scheme memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4578,
                                  "type": "type(struct UController.Scheme storage pointer)",
                                  "value": "Scheme"
                                },
                                "id": 4796,
                                "name": "Identifier",
                                "src": "4174:6:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes32",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes32)",
                                      "value": "bytes32"
                                    },
                                    "id": 4797,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4194:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 4798,
                                    "name": "Literal",
                                    "src": "4202:1:10"
                                  }
                                ],
                                "id": 4799,
                                "name": "FunctionCall",
                                "src": "4194:10:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_15_by_1",
                                          "typeString": "int_const 15"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4800,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4218:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "307846",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 15",
                                      "value": "0xF"
                                    },
                                    "id": 4801,
                                    "name": "Literal",
                                    "src": "4225:3:10"
                                  }
                                ],
                                "id": 4802,
                                "name": "FunctionCall",
                                "src": "4218:11:10"
                              }
                            ],
                            "id": 4803,
                            "name": "FunctionCall",
                            "src": "4174:57:10"
                          }
                        ],
                        "id": 4804,
                        "name": "Assignment",
                        "src": "4120:111:10"
                      }
                    ],
                    "id": 4805,
                    "name": "ExpressionStatement",
                    "src": "4120:111:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                  "typeString": "contract Avatar"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4642,
                              "type": "function (address,address,address)",
                              "value": "RegisterScheme"
                            },
                            "id": 4806,
                            "name": "Identifier",
                            "src": "4241:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 4807,
                                "name": "Identifier",
                                "src": "4256:3:10"
                              }
                            ],
                            "id": 4808,
                            "name": "MemberAccess",
                            "src": "4256:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 4809,
                                "name": "Identifier",
                                "src": "4268:3:10"
                              }
                            ],
                            "id": 4810,
                            "name": "MemberAccess",
                            "src": "4268:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4733,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 4811,
                            "name": "Identifier",
                            "src": "4279:7:10"
                          }
                        ],
                        "id": 4812,
                        "name": "FunctionCall",
                        "src": "4241:46:10"
                      }
                    ],
                    "id": 4813,
                    "name": "ExpressionStatement",
                    "src": "4241:46:10"
                  }
                ],
                "id": 4814,
                "name": "Block",
                "src": "3784:510:10"
              }
            ],
            "id": 4815,
            "name": "FunctionDefinition",
            "src": "3718:576:10"
          },
          {
            "attributes": {
              "name": "onlyRegisteredScheme",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "avatar",
                      "scope": 4840,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4816,
                        "name": "ElementaryTypeName",
                        "src": "4346:7:10"
                      }
                    ],
                    "id": 4817,
                    "name": "VariableDeclaration",
                    "src": "4346:14:10"
                  }
                ],
                "id": 4818,
                "name": "ParameterList",
                "src": "4345:16:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4819,
                            "name": "Identifier",
                            "src": "4372:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4577,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4596,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4610,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 4820,
                                                    "name": "Identifier",
                                                    "src": "4380:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4817,
                                                      "type": "address",
                                                      "value": "avatar"
                                                    },
                                                    "id": 4821,
                                                    "name": "Identifier",
                                                    "src": "4394:6:10"
                                                  }
                                                ],
                                                "id": 4822,
                                                "name": "IndexAccess",
                                                "src": "4380:21:10"
                                              }
                                            ],
                                            "id": 4823,
                                            "name": "MemberAccess",
                                            "src": "4380:29:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10901,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 4824,
                                                "name": "Identifier",
                                                "src": "4410:3:10"
                                              }
                                            ],
                                            "id": 4825,
                                            "name": "MemberAccess",
                                            "src": "4410:10:10"
                                          }
                                        ],
                                        "id": 4826,
                                        "name": "IndexAccess",
                                        "src": "4380:41:10"
                                      }
                                    ],
                                    "id": 4827,
                                    "name": "MemberAccess",
                                    "src": "4380:53:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 4828,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4434:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 4829,
                                        "name": "Literal",
                                        "src": "4441:1:10"
                                      }
                                    ],
                                    "id": 4830,
                                    "name": "FunctionCall",
                                    "src": "4434:9:10"
                                  }
                                ],
                                "id": 4831,
                                "name": "BinaryOperation",
                                "src": "4380:63:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4832,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4447:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 4833,
                                    "name": "Literal",
                                    "src": "4454:1:10"
                                  }
                                ],
                                "id": 4834,
                                "name": "FunctionCall",
                                "src": "4447:9:10"
                              }
                            ],
                            "id": 4835,
                            "name": "BinaryOperation",
                            "src": "4380:76:10"
                          }
                        ],
                        "id": 4836,
                        "name": "FunctionCall",
                        "src": "4372:85:10"
                      }
                    ],
                    "id": 4837,
                    "name": "ExpressionStatement",
                    "src": "4372:85:10"
                  },
                  {
                    "id": 4838,
                    "name": "PlaceholderStatement",
                    "src": "4467:1:10"
                  }
                ],
                "id": 4839,
                "name": "Block",
                "src": "4362:113:10"
              }
            ],
            "id": 4840,
            "name": "ModifierDefinition",
            "src": "4316:159:10"
          },
          {
            "attributes": {
              "name": "onlyRegisteringSchemes",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "avatar",
                      "scope": 4865,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4841,
                        "name": "ElementaryTypeName",
                        "src": "4513:7:10"
                      }
                    ],
                    "id": 4842,
                    "name": "VariableDeclaration",
                    "src": "4513:14:10"
                  }
                ],
                "id": 4843,
                "name": "ParameterList",
                "src": "4512:16:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4844,
                            "name": "Identifier",
                            "src": "4539:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4577,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4596,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4610,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 4845,
                                                    "name": "Identifier",
                                                    "src": "4547:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4842,
                                                      "type": "address",
                                                      "value": "avatar"
                                                    },
                                                    "id": 4846,
                                                    "name": "Identifier",
                                                    "src": "4561:6:10"
                                                  }
                                                ],
                                                "id": 4847,
                                                "name": "IndexAccess",
                                                "src": "4547:21:10"
                                              }
                                            ],
                                            "id": 4848,
                                            "name": "MemberAccess",
                                            "src": "4547:29:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10901,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 4849,
                                                "name": "Identifier",
                                                "src": "4577:3:10"
                                              }
                                            ],
                                            "id": 4850,
                                            "name": "MemberAccess",
                                            "src": "4577:10:10"
                                          }
                                        ],
                                        "id": 4851,
                                        "name": "IndexAccess",
                                        "src": "4547:41:10"
                                      }
                                    ],
                                    "id": 4852,
                                    "name": "MemberAccess",
                                    "src": "4547:53:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_2_by_1",
                                              "typeString": "int_const 2"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 4853,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4601:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "32",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 2",
                                          "value": "2"
                                        },
                                        "id": 4854,
                                        "name": "Literal",
                                        "src": "4608:1:10"
                                      }
                                    ],
                                    "id": 4855,
                                    "name": "FunctionCall",
                                    "src": "4601:9:10"
                                  }
                                ],
                                "id": 4856,
                                "name": "BinaryOperation",
                                "src": "4547:63:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_2_by_1",
                                          "typeString": "int_const 2"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4857,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4614:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "32",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 2",
                                      "value": "2"
                                    },
                                    "id": 4858,
                                    "name": "Literal",
                                    "src": "4621:1:10"
                                  }
                                ],
                                "id": 4859,
                                "name": "FunctionCall",
                                "src": "4614:9:10"
                              }
                            ],
                            "id": 4860,
                            "name": "BinaryOperation",
                            "src": "4547:76:10"
                          }
                        ],
                        "id": 4861,
                        "name": "FunctionCall",
                        "src": "4539:85:10"
                      }
                    ],
                    "id": 4862,
                    "name": "ExpressionStatement",
                    "src": "4539:85:10"
                  },
                  {
                    "id": 4863,
                    "name": "PlaceholderStatement",
                    "src": "4634:1:10"
                  }
                ],
                "id": 4864,
                "name": "Block",
                "src": "4529:113:10"
              }
            ],
            "id": 4865,
            "name": "ModifierDefinition",
            "src": "4481:161:10"
          },
          {
            "attributes": {
              "name": "onlyGlobalConstraintsScheme",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "avatar",
                      "scope": 4890,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4866,
                        "name": "ElementaryTypeName",
                        "src": "4685:7:10"
                      }
                    ],
                    "id": 4867,
                    "name": "VariableDeclaration",
                    "src": "4685:14:10"
                  }
                ],
                "id": 4868,
                "name": "ParameterList",
                "src": "4684:16:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4869,
                            "name": "Identifier",
                            "src": "4711:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4577,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4596,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4610,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 4870,
                                                    "name": "Identifier",
                                                    "src": "4719:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4867,
                                                      "type": "address",
                                                      "value": "avatar"
                                                    },
                                                    "id": 4871,
                                                    "name": "Identifier",
                                                    "src": "4733:6:10"
                                                  }
                                                ],
                                                "id": 4872,
                                                "name": "IndexAccess",
                                                "src": "4719:21:10"
                                              }
                                            ],
                                            "id": 4873,
                                            "name": "MemberAccess",
                                            "src": "4719:29:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10901,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 4874,
                                                "name": "Identifier",
                                                "src": "4749:3:10"
                                              }
                                            ],
                                            "id": 4875,
                                            "name": "MemberAccess",
                                            "src": "4749:10:10"
                                          }
                                        ],
                                        "id": 4876,
                                        "name": "IndexAccess",
                                        "src": "4719:41:10"
                                      }
                                    ],
                                    "id": 4877,
                                    "name": "MemberAccess",
                                    "src": "4719:53:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_4_by_1",
                                              "typeString": "int_const 4"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 4878,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4773:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "34",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 4",
                                          "value": "4"
                                        },
                                        "id": 4879,
                                        "name": "Literal",
                                        "src": "4780:1:10"
                                      }
                                    ],
                                    "id": 4880,
                                    "name": "FunctionCall",
                                    "src": "4773:9:10"
                                  }
                                ],
                                "id": 4881,
                                "name": "BinaryOperation",
                                "src": "4719:63:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4882,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4786:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "34",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 4",
                                      "value": "4"
                                    },
                                    "id": 4883,
                                    "name": "Literal",
                                    "src": "4793:1:10"
                                  }
                                ],
                                "id": 4884,
                                "name": "FunctionCall",
                                "src": "4786:9:10"
                              }
                            ],
                            "id": 4885,
                            "name": "BinaryOperation",
                            "src": "4719:76:10"
                          }
                        ],
                        "id": 4886,
                        "name": "FunctionCall",
                        "src": "4711:85:10"
                      }
                    ],
                    "id": 4887,
                    "name": "ExpressionStatement",
                    "src": "4711:85:10"
                  },
                  {
                    "id": 4888,
                    "name": "PlaceholderStatement",
                    "src": "4806:1:10"
                  }
                ],
                "id": 4889,
                "name": "Block",
                "src": "4701:113:10"
              }
            ],
            "id": 4890,
            "name": "ModifierDefinition",
            "src": "4648:166:10"
          },
          {
            "attributes": {
              "name": "onlyUpgradingScheme",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 4915,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4891,
                        "name": "ElementaryTypeName",
                        "src": "4849:7:10"
                      }
                    ],
                    "id": 4892,
                    "name": "VariableDeclaration",
                    "src": "4849:15:10"
                  }
                ],
                "id": 4893,
                "name": "ParameterList",
                "src": "4848:17:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 4894,
                            "name": "Identifier",
                            "src": "4876:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4577,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4596,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4610,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 4895,
                                                    "name": "Identifier",
                                                    "src": "4884:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4892,
                                                      "type": "address",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 4896,
                                                    "name": "Identifier",
                                                    "src": "4898:7:10"
                                                  }
                                                ],
                                                "id": 4897,
                                                "name": "IndexAccess",
                                                "src": "4884:22:10"
                                              }
                                            ],
                                            "id": 4898,
                                            "name": "MemberAccess",
                                            "src": "4884:30:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "sender",
                                              "referencedDeclaration": null,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10901,
                                                  "type": "msg",
                                                  "value": "msg"
                                                },
                                                "id": 4899,
                                                "name": "Identifier",
                                                "src": "4915:3:10"
                                              }
                                            ],
                                            "id": 4900,
                                            "name": "MemberAccess",
                                            "src": "4915:10:10"
                                          }
                                        ],
                                        "id": 4901,
                                        "name": "IndexAccess",
                                        "src": "4884:42:10"
                                      }
                                    ],
                                    "id": 4902,
                                    "name": "MemberAccess",
                                    "src": "4884:54:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_8_by_1",
                                              "typeString": "int_const 8"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 4903,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "4939:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "38",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 8",
                                          "value": "8"
                                        },
                                        "id": 4904,
                                        "name": "Literal",
                                        "src": "4946:1:10"
                                      }
                                    ],
                                    "id": 4905,
                                    "name": "FunctionCall",
                                    "src": "4939:9:10"
                                  }
                                ],
                                "id": 4906,
                                "name": "BinaryOperation",
                                "src": "4884:64:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 4907,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4952:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "38",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 8",
                                      "value": "8"
                                    },
                                    "id": 4908,
                                    "name": "Literal",
                                    "src": "4959:1:10"
                                  }
                                ],
                                "id": 4909,
                                "name": "FunctionCall",
                                "src": "4952:9:10"
                              }
                            ],
                            "id": 4910,
                            "name": "BinaryOperation",
                            "src": "4884:77:10"
                          }
                        ],
                        "id": 4911,
                        "name": "FunctionCall",
                        "src": "4876:86:10"
                      }
                    ],
                    "id": 4912,
                    "name": "ExpressionStatement",
                    "src": "4876:86:10"
                  },
                  {
                    "id": 4913,
                    "name": "PlaceholderStatement",
                    "src": "4972:1:10"
                  }
                ],
                "id": 4914,
                "name": "Block",
                "src": "4866:114:10"
              }
            ],
            "id": 4915,
            "name": "ModifierDefinition",
            "src": "4820:160:10"
          },
          {
            "attributes": {
              "name": "onlySubjectToConstraint",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "func",
                      "scope": 4999,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 4916,
                        "name": "ElementaryTypeName",
                        "src": "5019:7:10"
                      }
                    ],
                    "id": 4917,
                    "name": "VariableDeclaration",
                    "src": "5019:12:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 4999,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 4918,
                        "name": "ElementaryTypeName",
                        "src": "5032:7:10"
                      }
                    ],
                    "id": 4919,
                    "name": "VariableDeclaration",
                    "src": "5032:15:10"
                  }
                ],
                "id": 4920,
                "name": "ParameterList",
                "src": "5018:30:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        null
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "index",
                          "scope": 4999,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 4921,
                            "name": "ElementaryTypeName",
                            "src": "5059:4:10"
                          }
                        ],
                        "id": 4922,
                        "name": "VariableDeclaration",
                        "src": "5059:10:10"
                      }
                    ],
                    "id": 4923,
                    "name": "VariableDeclarationStatement",
                    "src": "5059:10:10"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4927
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "globalConstraints",
                          "scope": 4999,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct UController.GlobalConstraint memory[] memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "length": null,
                              "type": "struct UController.GlobalConstraint storage ref[] storage pointer"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "contractScope": null,
                                  "name": "GlobalConstraint",
                                  "referencedDeclaration": 4583,
                                  "type": "struct UController.GlobalConstraint storage pointer"
                                },
                                "id": 4925,
                                "name": "UserDefinedTypeName",
                                "src": "5079:16:10"
                              }
                            ],
                            "id": 4926,
                            "name": "ArrayTypeName",
                            "src": "5079:18:10"
                          }
                        ],
                        "id": 4927,
                        "name": "VariableDeclaration",
                        "src": "5079:43:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "globalConstraints",
                          "referencedDeclaration": 4599,
                          "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Organization storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4610,
                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                  "value": "organizations"
                                },
                                "id": 4928,
                                "name": "Identifier",
                                "src": "5125:13:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4919,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 4929,
                                "name": "Identifier",
                                "src": "5139:7:10"
                              }
                            ],
                            "id": 4930,
                            "name": "IndexAccess",
                            "src": "5125:22:10"
                          }
                        ],
                        "id": 4931,
                        "name": "MemberAccess",
                        "src": "5125:40:10"
                      }
                    ],
                    "id": 4932,
                    "name": "VariableDeclarationStatement",
                    "src": "5079:86:10"
                  },
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4922,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 4933,
                                "name": "Identifier",
                                "src": "5180:5:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4934,
                                "name": "Literal",
                                "src": "5188:1:10"
                              }
                            ],
                            "id": 4935,
                            "name": "Assignment",
                            "src": "5180:9:10"
                          }
                        ],
                        "id": 4936,
                        "name": "ExpressionStatement",
                        "src": "5180:9:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4922,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 4937,
                            "name": "Identifier",
                            "src": "5190:5:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4927,
                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                  "value": "globalConstraints"
                                },
                                "id": 4938,
                                "name": "Identifier",
                                "src": "5196:17:10"
                              }
                            ],
                            "id": 4939,
                            "name": "MemberAccess",
                            "src": "5196:24:10"
                          }
                        ],
                        "id": 4940,
                        "name": "BinaryOperation",
                        "src": "5190:30:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4922,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 4941,
                                "name": "Identifier",
                                "src": "5221:5:10"
                              }
                            ],
                            "id": 4942,
                            "name": "UnaryOperation",
                            "src": "5221:7:10"
                          }
                        ],
                        "id": 4943,
                        "name": "ExpressionStatement",
                        "src": "5221:7:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10904,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 4944,
                                    "name": "Identifier",
                                    "src": "5244:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bool",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "pre",
                                          "referencedDeclaration": 5898,
                                          "type": "function (address,bytes32,bytes32) external returns (bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "contract GlobalConstraintInterface"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "isStructConstructorCall": false,
                                                  "lValueRequested": false,
                                                  "names": [
                                                    null
                                                  ],
                                                  "type": "contract GlobalConstraintInterface",
                                                  "type_conversion": true
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": [
                                                        {
                                                          "typeIdentifier": "t_address",
                                                          "typeString": "address"
                                                        }
                                                      ],
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5910,
                                                      "type": "type(contract GlobalConstraintInterface)",
                                                      "value": "GlobalConstraintInterface"
                                                    },
                                                    "id": 4945,
                                                    "name": "Identifier",
                                                    "src": "5253:25:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "gcAddress",
                                                      "referencedDeclaration": 4580,
                                                      "type": "address"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": true,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "type": "struct UController.GlobalConstraint memory"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4927,
                                                              "type": "struct UController.GlobalConstraint memory[] memory",
                                                              "value": "globalConstraints"
                                                            },
                                                            "id": 4946,
                                                            "name": "Identifier",
                                                            "src": "5279:17:10"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4922,
                                                              "type": "uint256",
                                                              "value": "index"
                                                            },
                                                            "id": 4947,
                                                            "name": "Identifier",
                                                            "src": "5297:5:10"
                                                          }
                                                        ],
                                                        "id": 4948,
                                                        "name": "IndexAccess",
                                                        "src": "5279:24:10"
                                                      }
                                                    ],
                                                    "id": 4949,
                                                    "name": "MemberAccess",
                                                    "src": "5279:34:10"
                                                  }
                                                ],
                                                "id": 4950,
                                                "name": "FunctionCall",
                                                "src": "5253:61:10"
                                              }
                                            ],
                                            "id": 4951,
                                            "name": "TupleExpression",
                                            "src": "5252:63:10"
                                          }
                                        ],
                                        "id": 4952,
                                        "name": "MemberAccess",
                                        "src": "5252:67:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sender",
                                          "referencedDeclaration": null,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10901,
                                              "type": "msg",
                                              "value": "msg"
                                            },
                                            "id": 4953,
                                            "name": "Identifier",
                                            "src": "5320:3:10"
                                          }
                                        ],
                                        "id": 4954,
                                        "name": "MemberAccess",
                                        "src": "5320:10:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "params",
                                          "referencedDeclaration": 4582,
                                          "type": "bytes32"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.GlobalConstraint memory"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4927,
                                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                                  "value": "globalConstraints"
                                                },
                                                "id": 4955,
                                                "name": "Identifier",
                                                "src": "5332:17:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4922,
                                                  "type": "uint256",
                                                  "value": "index"
                                                },
                                                "id": 4956,
                                                "name": "Identifier",
                                                "src": "5350:5:10"
                                              }
                                            ],
                                            "id": 4957,
                                            "name": "IndexAccess",
                                            "src": "5332:24:10"
                                          }
                                        ],
                                        "id": 4958,
                                        "name": "MemberAccess",
                                        "src": "5332:31:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4917,
                                          "type": "bytes32",
                                          "value": "func"
                                        },
                                        "id": 4959,
                                        "name": "Identifier",
                                        "src": "5365:4:10"
                                      }
                                    ],
                                    "id": 4960,
                                    "name": "FunctionCall",
                                    "src": "5252:118:10"
                                  }
                                ],
                                "id": 4961,
                                "name": "FunctionCall",
                                "src": "5244:127:10"
                              }
                            ],
                            "id": 4962,
                            "name": "ExpressionStatement",
                            "src": "5244:127:10"
                          }
                        ],
                        "id": 4963,
                        "name": "Block",
                        "src": "5230:152:10"
                      }
                    ],
                    "id": 4964,
                    "name": "ForStatement",
                    "src": "5175:207:10"
                  },
                  {
                    "id": 4965,
                    "name": "PlaceholderStatement",
                    "src": "5391:1:10"
                  },
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4922,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 4966,
                                "name": "Identifier",
                                "src": "5407:5:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4967,
                                "name": "Literal",
                                "src": "5415:1:10"
                              }
                            ],
                            "id": 4968,
                            "name": "Assignment",
                            "src": "5407:9:10"
                          }
                        ],
                        "id": 4969,
                        "name": "ExpressionStatement",
                        "src": "5407:9:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4922,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 4970,
                            "name": "Identifier",
                            "src": "5417:5:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4927,
                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                  "value": "globalConstraints"
                                },
                                "id": 4971,
                                "name": "Identifier",
                                "src": "5423:17:10"
                              }
                            ],
                            "id": 4972,
                            "name": "MemberAccess",
                            "src": "5423:24:10"
                          }
                        ],
                        "id": 4973,
                        "name": "BinaryOperation",
                        "src": "5417:30:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4922,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 4974,
                                "name": "Identifier",
                                "src": "5448:5:10"
                              }
                            ],
                            "id": 4975,
                            "name": "UnaryOperation",
                            "src": "5448:7:10"
                          }
                        ],
                        "id": 4976,
                        "name": "ExpressionStatement",
                        "src": "5448:7:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10904,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 4977,
                                    "name": "Identifier",
                                    "src": "5471:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bool",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "post",
                                          "referencedDeclaration": 5909,
                                          "type": "function (address,bytes32,bytes32) external returns (bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "contract GlobalConstraintInterface"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "isStructConstructorCall": false,
                                                  "lValueRequested": false,
                                                  "names": [
                                                    null
                                                  ],
                                                  "type": "contract GlobalConstraintInterface",
                                                  "type_conversion": true
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": [
                                                        {
                                                          "typeIdentifier": "t_address",
                                                          "typeString": "address"
                                                        }
                                                      ],
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5910,
                                                      "type": "type(contract GlobalConstraintInterface)",
                                                      "value": "GlobalConstraintInterface"
                                                    },
                                                    "id": 4978,
                                                    "name": "Identifier",
                                                    "src": "5480:25:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "gcAddress",
                                                      "referencedDeclaration": 4580,
                                                      "type": "address"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": true,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "type": "struct UController.GlobalConstraint memory"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4927,
                                                              "type": "struct UController.GlobalConstraint memory[] memory",
                                                              "value": "globalConstraints"
                                                            },
                                                            "id": 4979,
                                                            "name": "Identifier",
                                                            "src": "5506:17:10"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4922,
                                                              "type": "uint256",
                                                              "value": "index"
                                                            },
                                                            "id": 4980,
                                                            "name": "Identifier",
                                                            "src": "5524:5:10"
                                                          }
                                                        ],
                                                        "id": 4981,
                                                        "name": "IndexAccess",
                                                        "src": "5506:24:10"
                                                      }
                                                    ],
                                                    "id": 4982,
                                                    "name": "MemberAccess",
                                                    "src": "5506:34:10"
                                                  }
                                                ],
                                                "id": 4983,
                                                "name": "FunctionCall",
                                                "src": "5480:61:10"
                                              }
                                            ],
                                            "id": 4984,
                                            "name": "TupleExpression",
                                            "src": "5479:63:10"
                                          }
                                        ],
                                        "id": 4985,
                                        "name": "MemberAccess",
                                        "src": "5479:68:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "sender",
                                          "referencedDeclaration": null,
                                          "type": "address"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10901,
                                              "type": "msg",
                                              "value": "msg"
                                            },
                                            "id": 4986,
                                            "name": "Identifier",
                                            "src": "5548:3:10"
                                          }
                                        ],
                                        "id": 4987,
                                        "name": "MemberAccess",
                                        "src": "5548:10:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "params",
                                          "referencedDeclaration": 4582,
                                          "type": "bytes32"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.GlobalConstraint memory"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4927,
                                                  "type": "struct UController.GlobalConstraint memory[] memory",
                                                  "value": "globalConstraints"
                                                },
                                                "id": 4988,
                                                "name": "Identifier",
                                                "src": "5560:17:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4922,
                                                  "type": "uint256",
                                                  "value": "index"
                                                },
                                                "id": 4989,
                                                "name": "Identifier",
                                                "src": "5578:5:10"
                                              }
                                            ],
                                            "id": 4990,
                                            "name": "IndexAccess",
                                            "src": "5560:24:10"
                                          }
                                        ],
                                        "id": 4991,
                                        "name": "MemberAccess",
                                        "src": "5560:31:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4917,
                                          "type": "bytes32",
                                          "value": "func"
                                        },
                                        "id": 4992,
                                        "name": "Identifier",
                                        "src": "5593:4:10"
                                      }
                                    ],
                                    "id": 4993,
                                    "name": "FunctionCall",
                                    "src": "5479:119:10"
                                  }
                                ],
                                "id": 4994,
                                "name": "FunctionCall",
                                "src": "5471:128:10"
                              }
                            ],
                            "id": 4995,
                            "name": "ExpressionStatement",
                            "src": "5471:128:10"
                          }
                        ],
                        "id": 4996,
                        "name": "Block",
                        "src": "5457:153:10"
                      }
                    ],
                    "id": 4997,
                    "name": "ForStatement",
                    "src": "5402:208:10"
                  }
                ],
                "id": 4998,
                "name": "Block",
                "src": "5049:567:10"
              }
            ],
            "id": 4999,
            "name": "ModifierDefinition",
            "src": "4986:630:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "mintReputation",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4176,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 5035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 5000,
                        "name": "ElementaryTypeName",
                        "src": "5885:6:10"
                      }
                    ],
                    "id": 5001,
                    "name": "VariableDeclaration",
                    "src": "5885:14:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 5035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5002,
                        "name": "ElementaryTypeName",
                        "src": "5901:7:10"
                      }
                    ],
                    "id": 5003,
                    "name": "VariableDeclaration",
                    "src": "5901:20:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5004,
                        "name": "ElementaryTypeName",
                        "src": "5922:7:10"
                      }
                    ],
                    "id": 5005,
                    "name": "VariableDeclaration",
                    "src": "5922:15:10"
                  }
                ],
                "id": 5006,
                "name": "ParameterList",
                "src": "5884:54:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5014,
                        "name": "ElementaryTypeName",
                        "src": "6050:4:10"
                      }
                    ],
                    "id": 5015,
                    "name": "VariableDeclaration",
                    "src": "6050:4:10"
                  }
                ],
                "id": 5016,
                "name": "ParameterList",
                "src": "6049:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4840,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5007,
                    "name": "Identifier",
                    "src": "5954:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5005,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5008,
                    "name": "Identifier",
                    "src": "5975:7:10"
                  }
                ],
                "id": 5009,
                "name": "ModifierInvocation",
                "src": "5954:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5010,
                    "name": "Identifier",
                    "src": "5988:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "6d696e7452657075746174696f6e",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"mintReputation\"",
                      "value": "mintReputation"
                    },
                    "id": 5011,
                    "name": "Literal",
                    "src": "6012:16:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5005,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5012,
                    "name": "Identifier",
                    "src": "6029:7:10"
                  }
                ],
                "id": 5013,
                "name": "ModifierInvocation",
                "src": "5988:49:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4624,
                              "type": "function (address,address,int256,address)",
                              "value": "MintReputation"
                            },
                            "id": 5017,
                            "name": "Identifier",
                            "src": "6070:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5018,
                                "name": "Identifier",
                                "src": "6085:3:10"
                              }
                            ],
                            "id": 5019,
                            "name": "MemberAccess",
                            "src": "6085:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5003,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5020,
                            "name": "Identifier",
                            "src": "6097:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5001,
                              "type": "int256",
                              "value": "_amount"
                            },
                            "id": 5021,
                            "name": "Identifier",
                            "src": "6111:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5005,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5022,
                            "name": "Identifier",
                            "src": "6119:7:10"
                          }
                        ],
                        "id": 5023,
                        "name": "FunctionCall",
                        "src": "6070:57:10"
                      }
                    ],
                    "id": 5024,
                    "name": "ExpressionStatement",
                    "src": "6070:57:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5016
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mint",
                              "referencedDeclaration": 4530,
                              "type": "function (address,int256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeReputation",
                                  "referencedDeclaration": 4592,
                                  "type": "contract Reputation"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5025,
                                        "name": "Identifier",
                                        "src": "6144:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5005,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5026,
                                        "name": "Identifier",
                                        "src": "6158:7:10"
                                      }
                                    ],
                                    "id": 5027,
                                    "name": "IndexAccess",
                                    "src": "6144:22:10"
                                  }
                                ],
                                "id": 5028,
                                "name": "MemberAccess",
                                "src": "6144:39:10"
                              }
                            ],
                            "id": 5029,
                            "name": "MemberAccess",
                            "src": "6144:44:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5003,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5030,
                            "name": "Identifier",
                            "src": "6189:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5001,
                              "type": "int256",
                              "value": "_amount"
                            },
                            "id": 5031,
                            "name": "Identifier",
                            "src": "6203:7:10"
                          }
                        ],
                        "id": 5032,
                        "name": "FunctionCall",
                        "src": "6144:67:10"
                      }
                    ],
                    "id": 5033,
                    "name": "Return",
                    "src": "6137:74:10"
                  }
                ],
                "id": 5034,
                "name": "Block",
                "src": "6060:158:10"
              }
            ],
            "id": 5035,
            "name": "FunctionDefinition",
            "src": "5861:357:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "mintTokens",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4187,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amount",
                      "scope": 5071,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 5036,
                        "name": "ElementaryTypeName",
                        "src": "6474:7:10"
                      }
                    ],
                    "id": 5037,
                    "name": "VariableDeclaration",
                    "src": "6474:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_beneficiary",
                      "scope": 5071,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5038,
                        "name": "ElementaryTypeName",
                        "src": "6491:7:10"
                      }
                    ],
                    "id": 5039,
                    "name": "VariableDeclaration",
                    "src": "6491:20:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5071,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5040,
                        "name": "ElementaryTypeName",
                        "src": "6512:7:10"
                      }
                    ],
                    "id": 5041,
                    "name": "VariableDeclaration",
                    "src": "6512:15:10"
                  }
                ],
                "id": 5042,
                "name": "ParameterList",
                "src": "6473:55:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5071,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5050,
                        "name": "ElementaryTypeName",
                        "src": "6636:4:10"
                      }
                    ],
                    "id": 5051,
                    "name": "VariableDeclaration",
                    "src": "6636:4:10"
                  }
                ],
                "id": 5052,
                "name": "ParameterList",
                "src": "6635:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4840,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5043,
                    "name": "Identifier",
                    "src": "6544:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5041,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5044,
                    "name": "Identifier",
                    "src": "6565:7:10"
                  }
                ],
                "id": 5045,
                "name": "ModifierInvocation",
                "src": "6544:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5046,
                    "name": "Identifier",
                    "src": "6578:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "6d696e74546f6b656e73",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"mintTokens\"",
                      "value": "mintTokens"
                    },
                    "id": 5047,
                    "name": "Literal",
                    "src": "6602:12:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5041,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5048,
                    "name": "Identifier",
                    "src": "6615:7:10"
                  }
                ],
                "id": 5049,
                "name": "ModifierInvocation",
                "src": "6578:45:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4634,
                              "type": "function (address,address,uint256,address)",
                              "value": "MintTokens"
                            },
                            "id": 5053,
                            "name": "Identifier",
                            "src": "6656:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5054,
                                "name": "Identifier",
                                "src": "6667:3:10"
                              }
                            ],
                            "id": 5055,
                            "name": "MemberAccess",
                            "src": "6667:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5039,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5056,
                            "name": "Identifier",
                            "src": "6679:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5037,
                              "type": "uint256",
                              "value": "_amount"
                            },
                            "id": 5057,
                            "name": "Identifier",
                            "src": "6693:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5041,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5058,
                            "name": "Identifier",
                            "src": "6701:7:10"
                          }
                        ],
                        "id": 5059,
                        "name": "FunctionCall",
                        "src": "6656:53:10"
                      }
                    ],
                    "id": 5060,
                    "name": "ExpressionStatement",
                    "src": "6656:53:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5052
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "mint",
                              "referencedDeclaration": 10623,
                              "type": "function (address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "nativeToken",
                                  "referencedDeclaration": 4590,
                                  "type": "contract DAOToken"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5061,
                                        "name": "Identifier",
                                        "src": "6726:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5041,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5062,
                                        "name": "Identifier",
                                        "src": "6740:7:10"
                                      }
                                    ],
                                    "id": 5063,
                                    "name": "IndexAccess",
                                    "src": "6726:22:10"
                                  }
                                ],
                                "id": 5064,
                                "name": "MemberAccess",
                                "src": "6726:34:10"
                              }
                            ],
                            "id": 5065,
                            "name": "MemberAccess",
                            "src": "6726:39:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5039,
                              "type": "address",
                              "value": "_beneficiary"
                            },
                            "id": 5066,
                            "name": "Identifier",
                            "src": "6766:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5037,
                              "type": "uint256",
                              "value": "_amount"
                            },
                            "id": 5067,
                            "name": "Identifier",
                            "src": "6780:7:10"
                          }
                        ],
                        "id": 5068,
                        "name": "FunctionCall",
                        "src": "6726:62:10"
                      }
                    ],
                    "id": 5069,
                    "name": "Return",
                    "src": "6719:69:10"
                  }
                ],
                "id": 5070,
                "name": "Block",
                "src": "6646:149:10"
              }
            ],
            "id": 5071,
            "name": "FunctionDefinition",
            "src": "6454:341:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "registerScheme",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4200,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5174,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5072,
                        "name": "ElementaryTypeName",
                        "src": "7151:7:10"
                      }
                    ],
                    "id": 5073,
                    "name": "VariableDeclaration",
                    "src": "7151:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_paramsHash",
                      "scope": 5174,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 5074,
                        "name": "ElementaryTypeName",
                        "src": "7168:7:10"
                      }
                    ],
                    "id": 5075,
                    "name": "VariableDeclaration",
                    "src": "7168:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_permissions",
                      "scope": 5174,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes4",
                          "type": "bytes4"
                        },
                        "id": 5076,
                        "name": "ElementaryTypeName",
                        "src": "7189:6:10"
                      }
                    ],
                    "id": 5077,
                    "name": "VariableDeclaration",
                    "src": "7189:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5174,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5078,
                        "name": "ElementaryTypeName",
                        "src": "7209:7:10"
                      }
                    ],
                    "id": 5079,
                    "name": "VariableDeclaration",
                    "src": "7209:15:10"
                  }
                ],
                "id": 5080,
                "name": "ParameterList",
                "src": "7150:75:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5174,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5088,
                        "name": "ElementaryTypeName",
                        "src": "7339:4:10"
                      }
                    ],
                    "id": 5089,
                    "name": "VariableDeclaration",
                    "src": "7339:4:10"
                  }
                ],
                "id": 5090,
                "name": "ParameterList",
                "src": "7338:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4865,
                      "type": "modifier (address)",
                      "value": "onlyRegisteringSchemes"
                    },
                    "id": 5081,
                    "name": "Identifier",
                    "src": "7241:22:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5079,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5082,
                    "name": "Identifier",
                    "src": "7264:7:10"
                  }
                ],
                "id": 5083,
                "name": "ModifierInvocation",
                "src": "7241:31:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5084,
                    "name": "Identifier",
                    "src": "7277:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "7265676973746572536368656d65",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"registerScheme\"",
                      "value": "registerScheme"
                    },
                    "id": 5085,
                    "name": "Literal",
                    "src": "7301:16:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5079,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5086,
                    "name": "Identifier",
                    "src": "7318:7:10"
                  }
                ],
                "id": 5087,
                "name": "ModifierInvocation",
                "src": "7277:49:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5092
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "schemePermission",
                          "scope": 5174,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes4",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 5091,
                            "name": "ElementaryTypeName",
                            "src": "7359:6:10"
                          }
                        ],
                        "id": 5092,
                        "name": "VariableDeclaration",
                        "src": "7359:23:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 4577,
                          "type": "bytes4"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4596,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5093,
                                        "name": "Identifier",
                                        "src": "7385:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5079,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5094,
                                        "name": "Identifier",
                                        "src": "7399:7:10"
                                      }
                                    ],
                                    "id": 5095,
                                    "name": "IndexAccess",
                                    "src": "7385:22:10"
                                  }
                                ],
                                "id": 5096,
                                "name": "MemberAccess",
                                "src": "7385:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5073,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5097,
                                "name": "Identifier",
                                "src": "7416:7:10"
                              }
                            ],
                            "id": 5098,
                            "name": "IndexAccess",
                            "src": "7385:39:10"
                          }
                        ],
                        "id": 5099,
                        "name": "MemberAccess",
                        "src": "7385:51:10"
                      }
                    ],
                    "id": 5100,
                    "name": "VariableDeclarationStatement",
                    "src": "7359:77:10"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        5102
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "senderPermission",
                          "scope": 5174,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes4",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 5101,
                            "name": "ElementaryTypeName",
                            "src": "7446:6:10"
                          }
                        ],
                        "id": 5102,
                        "name": "VariableDeclaration",
                        "src": "7446:23:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 4577,
                          "type": "bytes4"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4596,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5103,
                                        "name": "Identifier",
                                        "src": "7472:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5079,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5104,
                                        "name": "Identifier",
                                        "src": "7486:7:10"
                                      }
                                    ],
                                    "id": 5105,
                                    "name": "IndexAccess",
                                    "src": "7472:22:10"
                                  }
                                ],
                                "id": 5106,
                                "name": "MemberAccess",
                                "src": "7472:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10901,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5107,
                                    "name": "Identifier",
                                    "src": "7503:3:10"
                                  }
                                ],
                                "id": 5108,
                                "name": "MemberAccess",
                                "src": "7503:10:10"
                              }
                            ],
                            "id": 5109,
                            "name": "IndexAccess",
                            "src": "7472:42:10"
                          }
                        ],
                        "id": 5110,
                        "name": "MemberAccess",
                        "src": "7472:54:10"
                      }
                    ],
                    "id": 5111,
                    "name": "VariableDeclarationStatement",
                    "src": "7446:80:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5112,
                            "name": "Identifier",
                            "src": "7816:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes4",
                                        "typeString": "bytes4"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "&",
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "bytes4",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_rational_15_by_1",
                                                  "typeString": "int_const 15"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(bytes4)",
                                              "value": "bytes4"
                                            },
                                            "id": 5113,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "7824:6:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "3135",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 15",
                                              "value": "15"
                                            },
                                            "id": 5114,
                                            "name": "Literal",
                                            "src": "7831:2:10"
                                          }
                                        ],
                                        "id": 5115,
                                        "name": "FunctionCall",
                                        "src": "7824:10:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "bytes4"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "^",
                                              "type": "bytes4"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5077,
                                                  "type": "bytes4",
                                                  "value": "_permissions"
                                                },
                                                "id": 5116,
                                                "name": "Identifier",
                                                "src": "7836:12:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5092,
                                                  "type": "bytes4",
                                                  "value": "schemePermission"
                                                },
                                                "id": 5117,
                                                "name": "Identifier",
                                                "src": "7849:16:10"
                                              }
                                            ],
                                            "id": 5118,
                                            "name": "BinaryOperation",
                                            "src": "7836:29:10"
                                          }
                                        ],
                                        "id": 5119,
                                        "name": "TupleExpression",
                                        "src": "7835:31:10"
                                      }
                                    ],
                                    "id": 5120,
                                    "name": "BinaryOperation",
                                    "src": "7824:42:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "~",
                                          "prefix": true,
                                          "type": "bytes4"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5102,
                                              "type": "bytes4",
                                              "value": "senderPermission"
                                            },
                                            "id": 5121,
                                            "name": "Identifier",
                                            "src": "7869:16:10"
                                          }
                                        ],
                                        "id": 5122,
                                        "name": "UnaryOperation",
                                        "src": "7868:17:10"
                                      }
                                    ],
                                    "id": 5123,
                                    "name": "TupleExpression",
                                    "src": "7867:19:10"
                                  }
                                ],
                                "id": 5124,
                                "name": "BinaryOperation",
                                "src": "7824:62:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5125,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "7890:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5126,
                                    "name": "Literal",
                                    "src": "7897:1:10"
                                  }
                                ],
                                "id": 5127,
                                "name": "FunctionCall",
                                "src": "7890:9:10"
                              }
                            ],
                            "id": 5128,
                            "name": "BinaryOperation",
                            "src": "7824:75:10"
                          }
                        ],
                        "id": 5129,
                        "name": "FunctionCall",
                        "src": "7816:84:10"
                      }
                    ],
                    "id": 5130,
                    "name": "ExpressionStatement",
                    "src": "7816:84:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5131,
                            "name": "Identifier",
                            "src": "7995:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_15_by_1",
                                              "typeString": "int_const 15"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 5132,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8003:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "3135",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 15",
                                          "value": "15"
                                        },
                                        "id": 5133,
                                        "name": "Literal",
                                        "src": "8010:2:10"
                                      }
                                    ],
                                    "id": 5134,
                                    "name": "FunctionCall",
                                    "src": "8003:10:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes4",
                                            "typeString": "bytes4"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "&",
                                          "type": "bytes4"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5092,
                                              "type": "bytes4",
                                              "value": "schemePermission"
                                            },
                                            "id": 5135,
                                            "name": "Identifier",
                                            "src": "8015:16:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "bytes4"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "~",
                                                  "prefix": true,
                                                  "type": "bytes4"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5102,
                                                      "type": "bytes4",
                                                      "value": "senderPermission"
                                                    },
                                                    "id": 5136,
                                                    "name": "Identifier",
                                                    "src": "8034:16:10"
                                                  }
                                                ],
                                                "id": 5137,
                                                "name": "UnaryOperation",
                                                "src": "8033:17:10"
                                              }
                                            ],
                                            "id": 5138,
                                            "name": "TupleExpression",
                                            "src": "8032:19:10"
                                          }
                                        ],
                                        "id": 5139,
                                        "name": "BinaryOperation",
                                        "src": "8015:36:10"
                                      }
                                    ],
                                    "id": 5140,
                                    "name": "TupleExpression",
                                    "src": "8014:38:10"
                                  }
                                ],
                                "id": 5141,
                                "name": "BinaryOperation",
                                "src": "8003:49:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5142,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "8056:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5143,
                                    "name": "Literal",
                                    "src": "8063:1:10"
                                  }
                                ],
                                "id": 5144,
                                "name": "FunctionCall",
                                "src": "8056:9:10"
                              }
                            ],
                            "id": 5145,
                            "name": "BinaryOperation",
                            "src": "8003:62:10"
                          }
                        ],
                        "id": 5146,
                        "name": "FunctionCall",
                        "src": "7995:71:10"
                      }
                    ],
                    "id": 5147,
                    "name": "ExpressionStatement",
                    "src": "7995:71:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct UController.Scheme storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4596,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5148,
                                        "name": "Identifier",
                                        "src": "8110:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5079,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5149,
                                        "name": "Identifier",
                                        "src": "8124:7:10"
                                      }
                                    ],
                                    "id": 5150,
                                    "name": "IndexAccess",
                                    "src": "8110:22:10"
                                  }
                                ],
                                "id": 5151,
                                "name": "MemberAccess",
                                "src": "8110:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5073,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5152,
                                "name": "Identifier",
                                "src": "8141:7:10"
                              }
                            ],
                            "id": 5153,
                            "name": "IndexAccess",
                            "src": "8110:39:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": true,
                              "lValueRequested": false,
                              "names": [
                                "paramsHash",
                                "permissions"
                              ],
                              "type": "struct UController.Scheme memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4578,
                                  "type": "type(struct UController.Scheme storage pointer)",
                                  "value": "Scheme"
                                },
                                "id": 5154,
                                "name": "Identifier",
                                "src": "8152:6:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5075,
                                  "type": "bytes32",
                                  "value": "_paramsHash"
                                },
                                "id": 5155,
                                "name": "Identifier",
                                "src": "8171:11:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "|",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5077,
                                      "type": "bytes4",
                                      "value": "_permissions"
                                    },
                                    "id": 5156,
                                    "name": "Identifier",
                                    "src": "8195:12:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 5157,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8208:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 5158,
                                        "name": "Literal",
                                        "src": "8215:1:10"
                                      }
                                    ],
                                    "id": 5159,
                                    "name": "FunctionCall",
                                    "src": "8208:9:10"
                                  }
                                ],
                                "id": 5160,
                                "name": "BinaryOperation",
                                "src": "8195:22:10"
                              }
                            ],
                            "id": 5161,
                            "name": "FunctionCall",
                            "src": "8152:67:10"
                          }
                        ],
                        "id": 5162,
                        "name": "Assignment",
                        "src": "8110:109:10"
                      }
                    ],
                    "id": 5163,
                    "name": "ExpressionStatement",
                    "src": "8110:109:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4642,
                              "type": "function (address,address,address)",
                              "value": "RegisterScheme"
                            },
                            "id": 5164,
                            "name": "Identifier",
                            "src": "8229:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5165,
                                "name": "Identifier",
                                "src": "8244:3:10"
                              }
                            ],
                            "id": 5166,
                            "name": "MemberAccess",
                            "src": "8244:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5073,
                              "type": "address",
                              "value": "_scheme"
                            },
                            "id": 5167,
                            "name": "Identifier",
                            "src": "8256:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5079,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5168,
                            "name": "Identifier",
                            "src": "8265:7:10"
                          }
                        ],
                        "id": 5169,
                        "name": "FunctionCall",
                        "src": "8229:44:10"
                      }
                    ],
                    "id": 5170,
                    "name": "ExpressionStatement",
                    "src": "8229:44:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5090
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5171,
                        "name": "Literal",
                        "src": "8290:4:10"
                      }
                    ],
                    "id": 5172,
                    "name": "Return",
                    "src": "8283:11:10"
                  }
                ],
                "id": 5173,
                "name": "Block",
                "src": "7349:952:10"
              }
            ],
            "id": 5174,
            "name": "FunctionDefinition",
            "src": "7127:1174:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "unregisterScheme",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4209,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5255,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5175,
                        "name": "ElementaryTypeName",
                        "src": "8523:7:10"
                      }
                    ],
                    "id": 5176,
                    "name": "VariableDeclaration",
                    "src": "8523:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5255,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5177,
                        "name": "ElementaryTypeName",
                        "src": "8539:7:10"
                      }
                    ],
                    "id": 5178,
                    "name": "VariableDeclaration",
                    "src": "8539:15:10"
                  }
                ],
                "id": 5179,
                "name": "ParameterList",
                "src": "8522:33:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5255,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5187,
                        "name": "ElementaryTypeName",
                        "src": "8671:4:10"
                      }
                    ],
                    "id": 5188,
                    "name": "VariableDeclaration",
                    "src": "8671:4:10"
                  }
                ],
                "id": 5189,
                "name": "ParameterList",
                "src": "8670:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4865,
                      "type": "modifier (address)",
                      "value": "onlyRegisteringSchemes"
                    },
                    "id": 5180,
                    "name": "Identifier",
                    "src": "8571:22:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5178,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5181,
                    "name": "Identifier",
                    "src": "8594:7:10"
                  }
                ],
                "id": 5182,
                "name": "ModifierInvocation",
                "src": "8571:31:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5183,
                    "name": "Identifier",
                    "src": "8607:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "756e7265676973746572536368656d65",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"unregisterScheme\"",
                      "value": "unregisterScheme"
                    },
                    "id": 5184,
                    "name": "Literal",
                    "src": "8631:18:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5178,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5185,
                    "name": "Identifier",
                    "src": "8650:7:10"
                  }
                ],
                "id": 5186,
                "name": "ModifierInvocation",
                "src": "8607:51:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5191
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "schemePermission",
                          "scope": 5255,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes4",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes4",
                              "type": "bytes4"
                            },
                            "id": 5190,
                            "name": "ElementaryTypeName",
                            "src": "8691:6:10"
                          }
                        ],
                        "id": 5191,
                        "name": "VariableDeclaration",
                        "src": "8691:23:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 4577,
                          "type": "bytes4"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4596,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5192,
                                        "name": "Identifier",
                                        "src": "8717:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5178,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5193,
                                        "name": "Identifier",
                                        "src": "8731:7:10"
                                      }
                                    ],
                                    "id": 5194,
                                    "name": "IndexAccess",
                                    "src": "8717:22:10"
                                  }
                                ],
                                "id": 5195,
                                "name": "MemberAccess",
                                "src": "8717:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5176,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5196,
                                "name": "Identifier",
                                "src": "8748:7:10"
                              }
                            ],
                            "id": 5197,
                            "name": "IndexAccess",
                            "src": "8717:39:10"
                          }
                        ],
                        "id": 5198,
                        "name": "MemberAccess",
                        "src": "8717:51:10"
                      }
                    ],
                    "id": 5199,
                    "name": "VariableDeclarationStatement",
                    "src": "8691:77:10"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "bytes4"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5191,
                                  "type": "bytes4",
                                  "value": "schemePermission"
                                },
                                "id": 5200,
                                "name": "Identifier",
                                "src": "8820:16:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5201,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "8837:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 5202,
                                    "name": "Literal",
                                    "src": "8844:1:10"
                                  }
                                ],
                                "id": 5203,
                                "name": "FunctionCall",
                                "src": "8837:9:10"
                              }
                            ],
                            "id": 5204,
                            "name": "BinaryOperation",
                            "src": "8820:26:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes4",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(bytes4)",
                                  "value": "bytes4"
                                },
                                "id": 5205,
                                "name": "ElementaryTypeNameExpression",
                                "src": "8850:6:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 5206,
                                "name": "Literal",
                                "src": "8857:1:10"
                              }
                            ],
                            "id": 5207,
                            "name": "FunctionCall",
                            "src": "8850:9:10"
                          }
                        ],
                        "id": 5208,
                        "name": "BinaryOperation",
                        "src": "8820:39:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 5189
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 5209,
                                "name": "Literal",
                                "src": "8882:5:10"
                              }
                            ],
                            "id": 5210,
                            "name": "Return",
                            "src": "8875:12:10"
                          }
                        ],
                        "id": 5211,
                        "name": "Block",
                        "src": "8861:39:10"
                      }
                    ],
                    "id": 5212,
                    "name": "IfStatement",
                    "src": "8816:84:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5213,
                            "name": "Identifier",
                            "src": "8971:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_15_by_1",
                                              "typeString": "int_const 15"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 5214,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8979:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "3135",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 15",
                                          "value": "15"
                                        },
                                        "id": 5215,
                                        "name": "Literal",
                                        "src": "8986:2:10"
                                      }
                                    ],
                                    "id": 5216,
                                    "name": "FunctionCall",
                                    "src": "8979:10:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes4",
                                            "typeString": "bytes4"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "&",
                                          "type": "bytes4"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5191,
                                              "type": "bytes4",
                                              "value": "schemePermission"
                                            },
                                            "id": 5217,
                                            "name": "Identifier",
                                            "src": "8991:16:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "bytes4"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "~",
                                                  "prefix": true,
                                                  "type": "bytes4"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "permissions",
                                                      "referencedDeclaration": 4577,
                                                      "type": "bytes4"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": true,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "type": "struct UController.Scheme storage ref"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "isConstant": false,
                                                              "isLValue": true,
                                                              "isPure": false,
                                                              "lValueRequested": false,
                                                              "member_name": "schemes",
                                                              "referencedDeclaration": 4596,
                                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": null,
                                                                  "isConstant": false,
                                                                  "isLValue": true,
                                                                  "isPure": false,
                                                                  "lValueRequested": false,
                                                                  "type": "struct UController.Organization storage ref"
                                                                },
                                                                "children": [
                                                                  {
                                                                    "attributes": {
                                                                      "argumentTypes": null,
                                                                      "overloadedDeclarations": [
                                                                        null
                                                                      ],
                                                                      "referencedDeclaration": 4610,
                                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                                      "value": "organizations"
                                                                    },
                                                                    "id": 5218,
                                                                    "name": "Identifier",
                                                                    "src": "9010:13:10"
                                                                  },
                                                                  {
                                                                    "attributes": {
                                                                      "argumentTypes": null,
                                                                      "overloadedDeclarations": [
                                                                        null
                                                                      ],
                                                                      "referencedDeclaration": 5178,
                                                                      "type": "address",
                                                                      "value": "_avatar"
                                                                    },
                                                                    "id": 5219,
                                                                    "name": "Identifier",
                                                                    "src": "9024:7:10"
                                                                  }
                                                                ],
                                                                "id": 5220,
                                                                "name": "IndexAccess",
                                                                "src": "9010:22:10"
                                                              }
                                                            ],
                                                            "id": 5221,
                                                            "name": "MemberAccess",
                                                            "src": "9010:30:10"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": false,
                                                              "lValueRequested": false,
                                                              "member_name": "sender",
                                                              "referencedDeclaration": null,
                                                              "type": "address"
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": null,
                                                                  "overloadedDeclarations": [
                                                                    null
                                                                  ],
                                                                  "referencedDeclaration": 10901,
                                                                  "type": "msg",
                                                                  "value": "msg"
                                                                },
                                                                "id": 5222,
                                                                "name": "Identifier",
                                                                "src": "9041:3:10"
                                                              }
                                                            ],
                                                            "id": 5223,
                                                            "name": "MemberAccess",
                                                            "src": "9041:10:10"
                                                          }
                                                        ],
                                                        "id": 5224,
                                                        "name": "IndexAccess",
                                                        "src": "9010:42:10"
                                                      }
                                                    ],
                                                    "id": 5225,
                                                    "name": "MemberAccess",
                                                    "src": "9010:54:10"
                                                  }
                                                ],
                                                "id": 5226,
                                                "name": "UnaryOperation",
                                                "src": "9009:55:10"
                                              }
                                            ],
                                            "id": 5227,
                                            "name": "TupleExpression",
                                            "src": "9008:57:10"
                                          }
                                        ],
                                        "id": 5228,
                                        "name": "BinaryOperation",
                                        "src": "8991:74:10"
                                      }
                                    ],
                                    "id": 5229,
                                    "name": "TupleExpression",
                                    "src": "8990:76:10"
                                  }
                                ],
                                "id": 5230,
                                "name": "BinaryOperation",
                                "src": "8979:87:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5231,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "9070:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5232,
                                    "name": "Literal",
                                    "src": "9077:1:10"
                                  }
                                ],
                                "id": 5233,
                                "name": "FunctionCall",
                                "src": "9070:9:10"
                              }
                            ],
                            "id": 5234,
                            "name": "BinaryOperation",
                            "src": "8979:100:10"
                          }
                        ],
                        "id": 5235,
                        "name": "FunctionCall",
                        "src": "8971:109:10"
                      }
                    ],
                    "id": 5236,
                    "name": "ExpressionStatement",
                    "src": "8971:109:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4650,
                              "type": "function (address,address,address)",
                              "value": "UnregisterScheme"
                            },
                            "id": 5237,
                            "name": "Identifier",
                            "src": "9110:16:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5238,
                                "name": "Identifier",
                                "src": "9127:3:10"
                              }
                            ],
                            "id": 5239,
                            "name": "MemberAccess",
                            "src": "9127:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5176,
                              "type": "address",
                              "value": "_scheme"
                            },
                            "id": 5240,
                            "name": "Identifier",
                            "src": "9139:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5178,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5241,
                            "name": "Identifier",
                            "src": "9147:7:10"
                          }
                        ],
                        "id": 5242,
                        "name": "FunctionCall",
                        "src": "9110:45:10"
                      }
                    ],
                    "id": 5243,
                    "name": "ExpressionStatement",
                    "src": "9110:45:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4596,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5244,
                                        "name": "Identifier",
                                        "src": "9172:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5178,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5245,
                                        "name": "Identifier",
                                        "src": "9186:7:10"
                                      }
                                    ],
                                    "id": 5246,
                                    "name": "IndexAccess",
                                    "src": "9172:22:10"
                                  }
                                ],
                                "id": 5247,
                                "name": "MemberAccess",
                                "src": "9172:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5176,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5248,
                                "name": "Identifier",
                                "src": "9203:7:10"
                              }
                            ],
                            "id": 5249,
                            "name": "IndexAccess",
                            "src": "9172:39:10"
                          }
                        ],
                        "id": 5250,
                        "name": "UnaryOperation",
                        "src": "9165:46:10"
                      }
                    ],
                    "id": 5251,
                    "name": "ExpressionStatement",
                    "src": "9165:46:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5189
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5252,
                        "name": "Literal",
                        "src": "9228:4:10"
                      }
                    ],
                    "id": 5253,
                    "name": "Return",
                    "src": "9221:11:10"
                  }
                ],
                "id": 5254,
                "name": "Block",
                "src": "8681:558:10"
              }
            ],
            "id": 5255,
            "name": "FunctionDefinition",
            "src": "8497:742:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "unregisterSelf",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4216,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5293,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5256,
                        "name": "ElementaryTypeName",
                        "src": "9422:7:10"
                      }
                    ],
                    "id": 5257,
                    "name": "VariableDeclaration",
                    "src": "9422:15:10"
                  }
                ],
                "id": 5258,
                "name": "ParameterList",
                "src": "9421:17:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5293,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5259,
                        "name": "ElementaryTypeName",
                        "src": "9454:4:10"
                      }
                    ],
                    "id": 5260,
                    "name": "VariableDeclaration",
                    "src": "9454:4:10"
                  }
                ],
                "id": 5261,
                "name": "ParameterList",
                "src": "9453:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bool",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    5320
                                  ],
                                  "referencedDeclaration": 5320,
                                  "type": "function (address,address) view returns (bool)",
                                  "value": "isSchemeRegistered"
                                },
                                "id": 5262,
                                "name": "Identifier",
                                "src": "9474:18:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10901,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5263,
                                    "name": "Identifier",
                                    "src": "9493:3:10"
                                  }
                                ],
                                "id": 5264,
                                "name": "MemberAccess",
                                "src": "9493:10:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5257,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 5265,
                                "name": "Identifier",
                                "src": "9504:7:10"
                              }
                            ],
                            "id": 5266,
                            "name": "FunctionCall",
                            "src": "9474:38:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 5267,
                            "name": "Literal",
                            "src": "9516:5:10"
                          }
                        ],
                        "id": 5268,
                        "name": "BinaryOperation",
                        "src": "9474:47:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 5261
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 5269,
                                "name": "Literal",
                                "src": "9544:5:10"
                              }
                            ],
                            "id": 5270,
                            "name": "Return",
                            "src": "9537:12:10"
                          }
                        ],
                        "id": 5271,
                        "name": "Block",
                        "src": "9523:37:10"
                      }
                    ],
                    "id": 5272,
                    "name": "IfStatement",
                    "src": "9470:90:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4596,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5273,
                                        "name": "Identifier",
                                        "src": "9576:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5257,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5274,
                                        "name": "Identifier",
                                        "src": "9590:7:10"
                                      }
                                    ],
                                    "id": 5275,
                                    "name": "IndexAccess",
                                    "src": "9576:22:10"
                                  }
                                ],
                                "id": 5276,
                                "name": "MemberAccess",
                                "src": "9576:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10901,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5277,
                                    "name": "Identifier",
                                    "src": "9607:3:10"
                                  }
                                ],
                                "id": 5278,
                                "name": "MemberAccess",
                                "src": "9607:10:10"
                              }
                            ],
                            "id": 5279,
                            "name": "IndexAccess",
                            "src": "9576:42:10"
                          }
                        ],
                        "id": 5280,
                        "name": "UnaryOperation",
                        "src": "9569:49:10"
                      }
                    ],
                    "id": 5281,
                    "name": "ExpressionStatement",
                    "src": "9569:49:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4650,
                              "type": "function (address,address,address)",
                              "value": "UnregisterScheme"
                            },
                            "id": 5282,
                            "name": "Identifier",
                            "src": "9628:16:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5283,
                                "name": "Identifier",
                                "src": "9645:3:10"
                              }
                            ],
                            "id": 5284,
                            "name": "MemberAccess",
                            "src": "9645:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5285,
                                "name": "Identifier",
                                "src": "9657:3:10"
                              }
                            ],
                            "id": 5286,
                            "name": "MemberAccess",
                            "src": "9657:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5257,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5287,
                            "name": "Identifier",
                            "src": "9668:7:10"
                          }
                        ],
                        "id": 5288,
                        "name": "FunctionCall",
                        "src": "9628:48:10"
                      }
                    ],
                    "id": 5289,
                    "name": "ExpressionStatement",
                    "src": "9628:48:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5261
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5290,
                        "name": "Literal",
                        "src": "9693:4:10"
                      }
                    ],
                    "id": 5291,
                    "name": "Return",
                    "src": "9686:11:10"
                  }
                ],
                "id": 5292,
                "name": "Block",
                "src": "9460:244:10"
              }
            ],
            "id": 5293,
            "name": "FunctionDefinition",
            "src": "9398:306:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isSchemeRegistered",
              "payable": false,
              "scope": 5885,
              "stateMutability": "view",
              "superFunction": 4225,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5320,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5294,
                        "name": "ElementaryTypeName",
                        "src": "9739:7:10"
                      }
                    ],
                    "id": 5295,
                    "name": "VariableDeclaration",
                    "src": "9739:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5320,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5296,
                        "name": "ElementaryTypeName",
                        "src": "9755:7:10"
                      }
                    ],
                    "id": 5297,
                    "name": "VariableDeclaration",
                    "src": "9755:15:10"
                  }
                ],
                "id": 5298,
                "name": "ParameterList",
                "src": "9737:34:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5320,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5299,
                        "name": "ElementaryTypeName",
                        "src": "9796:4:10"
                      }
                    ],
                    "id": 5300,
                    "name": "VariableDeclaration",
                    "src": "9796:4:10"
                  }
                ],
                "id": 5301,
                "name": "ParameterList",
                "src": "9795:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5301
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "bytes4"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "permissions",
                                      "referencedDeclaration": 4577,
                                      "type": "bytes4"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Scheme storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "schemes",
                                              "referencedDeclaration": 4596,
                                              "type": "mapping(address => struct UController.Scheme storage ref)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4610,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 5302,
                                                    "name": "Identifier",
                                                    "src": "9820:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5297,
                                                      "type": "address",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 5303,
                                                    "name": "Identifier",
                                                    "src": "9834:7:10"
                                                  }
                                                ],
                                                "id": 5304,
                                                "name": "IndexAccess",
                                                "src": "9820:22:10"
                                              }
                                            ],
                                            "id": 5305,
                                            "name": "MemberAccess",
                                            "src": "9820:30:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5295,
                                              "type": "address",
                                              "value": "_scheme"
                                            },
                                            "id": 5306,
                                            "name": "Identifier",
                                            "src": "9851:7:10"
                                          }
                                        ],
                                        "id": 5307,
                                        "name": "IndexAccess",
                                        "src": "9820:39:10"
                                      }
                                    ],
                                    "id": 5308,
                                    "name": "MemberAccess",
                                    "src": "9820:51:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "bytes4",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes4)",
                                          "value": "bytes4"
                                        },
                                        "id": 5309,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "9872:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 5310,
                                        "name": "Literal",
                                        "src": "9879:1:10"
                                      }
                                    ],
                                    "id": 5311,
                                    "name": "FunctionCall",
                                    "src": "9872:9:10"
                                  }
                                ],
                                "id": 5312,
                                "name": "BinaryOperation",
                                "src": "9820:61:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "bytes4",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes4)",
                                      "value": "bytes4"
                                    },
                                    "id": 5313,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "9885:6:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5314,
                                    "name": "Literal",
                                    "src": "9892:1:10"
                                  }
                                ],
                                "id": 5315,
                                "name": "FunctionCall",
                                "src": "9885:9:10"
                              }
                            ],
                            "id": 5316,
                            "name": "BinaryOperation",
                            "src": "9820:74:10"
                          }
                        ],
                        "id": 5317,
                        "name": "TupleExpression",
                        "src": "9819:76:10"
                      }
                    ],
                    "id": 5318,
                    "name": "Return",
                    "src": "9812:83:10"
                  }
                ],
                "id": 5319,
                "name": "Block",
                "src": "9802:100:10"
              }
            ],
            "id": 5320,
            "name": "FunctionDefinition",
            "src": "9710:192:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getSchemeParameters",
              "payable": false,
              "scope": 5885,
              "stateMutability": "view",
              "superFunction": 4234,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5338,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5321,
                        "name": "ElementaryTypeName",
                        "src": "9937:7:10"
                      }
                    ],
                    "id": 5322,
                    "name": "VariableDeclaration",
                    "src": "9937:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5338,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5323,
                        "name": "ElementaryTypeName",
                        "src": "9953:7:10"
                      }
                    ],
                    "id": 5324,
                    "name": "VariableDeclaration",
                    "src": "9953:15:10"
                  }
                ],
                "id": 5325,
                "name": "ParameterList",
                "src": "9936:33:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5338,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 5326,
                        "name": "ElementaryTypeName",
                        "src": "9994:7:10"
                      }
                    ],
                    "id": 5327,
                    "name": "VariableDeclaration",
                    "src": "9994:7:10"
                  }
                ],
                "id": 5328,
                "name": "ParameterList",
                "src": "9993:9:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5328
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "paramsHash",
                          "referencedDeclaration": 4575,
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4596,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5329,
                                        "name": "Identifier",
                                        "src": "10020:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5324,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5330,
                                        "name": "Identifier",
                                        "src": "10034:7:10"
                                      }
                                    ],
                                    "id": 5331,
                                    "name": "IndexAccess",
                                    "src": "10020:22:10"
                                  }
                                ],
                                "id": 5332,
                                "name": "MemberAccess",
                                "src": "10020:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5322,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5333,
                                "name": "Identifier",
                                "src": "10051:7:10"
                              }
                            ],
                            "id": 5334,
                            "name": "IndexAccess",
                            "src": "10020:39:10"
                          }
                        ],
                        "id": 5335,
                        "name": "MemberAccess",
                        "src": "10020:50:10"
                      }
                    ],
                    "id": 5336,
                    "name": "Return",
                    "src": "10013:57:10"
                  }
                ],
                "id": 5337,
                "name": "Block",
                "src": "10003:74:10"
              }
            ],
            "id": 5338,
            "name": "FunctionDefinition",
            "src": "9908:169:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getSchemePermissions",
              "payable": false,
              "scope": 5885,
              "stateMutability": "view",
              "superFunction": 4243,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 5356,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5339,
                        "name": "ElementaryTypeName",
                        "src": "10113:7:10"
                      }
                    ],
                    "id": 5340,
                    "name": "VariableDeclaration",
                    "src": "10113:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5356,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5341,
                        "name": "ElementaryTypeName",
                        "src": "10129:7:10"
                      }
                    ],
                    "id": 5342,
                    "name": "VariableDeclaration",
                    "src": "10129:15:10"
                  }
                ],
                "id": 5343,
                "name": "ParameterList",
                "src": "10112:33:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5356,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes4",
                          "type": "bytes4"
                        },
                        "id": 5344,
                        "name": "ElementaryTypeName",
                        "src": "10170:6:10"
                      }
                    ],
                    "id": 5345,
                    "name": "VariableDeclaration",
                    "src": "10170:6:10"
                  }
                ],
                "id": 5346,
                "name": "ParameterList",
                "src": "10169:8:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5346
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "permissions",
                          "referencedDeclaration": 4577,
                          "type": "bytes4"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Scheme storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "schemes",
                                  "referencedDeclaration": 4596,
                                  "type": "mapping(address => struct UController.Scheme storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5347,
                                        "name": "Identifier",
                                        "src": "10195:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5342,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5348,
                                        "name": "Identifier",
                                        "src": "10209:7:10"
                                      }
                                    ],
                                    "id": 5349,
                                    "name": "IndexAccess",
                                    "src": "10195:22:10"
                                  }
                                ],
                                "id": 5350,
                                "name": "MemberAccess",
                                "src": "10195:30:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5340,
                                  "type": "address",
                                  "value": "_scheme"
                                },
                                "id": 5351,
                                "name": "Identifier",
                                "src": "10226:7:10"
                              }
                            ],
                            "id": 5352,
                            "name": "IndexAccess",
                            "src": "10195:39:10"
                          }
                        ],
                        "id": 5353,
                        "name": "MemberAccess",
                        "src": "10195:51:10"
                      }
                    ],
                    "id": 5354,
                    "name": "Return",
                    "src": "10188:58:10"
                  }
                ],
                "id": 5355,
                "name": "Block",
                "src": "10178:75:10"
              }
            ],
            "id": 5356,
            "name": "FunctionDefinition",
            "src": "10083:170:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "globalConstraintsCount",
              "payable": false,
              "scope": 5885,
              "stateMutability": "view",
              "superFunction": 4250,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5370,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5357,
                        "name": "ElementaryTypeName",
                        "src": "10316:7:10"
                      }
                    ],
                    "id": 5358,
                    "name": "VariableDeclaration",
                    "src": "10316:15:10"
                  }
                ],
                "id": 5359,
                "name": "ParameterList",
                "src": "10315:17:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5370,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5360,
                        "name": "ElementaryTypeName",
                        "src": "10357:4:10"
                      }
                    ],
                    "id": 5361,
                    "name": "VariableDeclaration",
                    "src": "10357:4:10"
                  }
                ],
                "id": 5362,
                "name": "ParameterList",
                "src": "10356:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5362
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "length",
                          "referencedDeclaration": null,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "globalConstraints",
                              "referencedDeclaration": 4599,
                              "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4610,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 5363,
                                    "name": "Identifier",
                                    "src": "10380:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5358,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 5364,
                                    "name": "Identifier",
                                    "src": "10394:7:10"
                                  }
                                ],
                                "id": 5365,
                                "name": "IndexAccess",
                                "src": "10380:22:10"
                              }
                            ],
                            "id": 5366,
                            "name": "MemberAccess",
                            "src": "10380:40:10"
                          }
                        ],
                        "id": 5367,
                        "name": "MemberAccess",
                        "src": "10380:47:10"
                      }
                    ],
                    "id": 5368,
                    "name": "Return",
                    "src": "10373:54:10"
                  }
                ],
                "id": 5369,
                "name": "Block",
                "src": "10363:71:10"
              }
            ],
            "id": 5370,
            "name": "FunctionDefinition",
            "src": "10284:150:10"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "isGlobalConstraintRegister",
              "payable": false,
              "scope": 5885,
              "stateMutability": "view",
              "superFunction": 4259,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_globalConstraint",
                      "scope": 5388,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5371,
                        "name": "ElementaryTypeName",
                        "src": "10476:7:10"
                      }
                    ],
                    "id": 5372,
                    "name": "VariableDeclaration",
                    "src": "10476:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5388,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5373,
                        "name": "ElementaryTypeName",
                        "src": "10502:7:10"
                      }
                    ],
                    "id": 5374,
                    "name": "VariableDeclaration",
                    "src": "10502:15:10"
                  }
                ],
                "id": 5375,
                "name": "ParameterList",
                "src": "10475:43:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5388,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5376,
                        "name": "ElementaryTypeName",
                        "src": "10543:4:10"
                      }
                    ],
                    "id": 5377,
                    "name": "VariableDeclaration",
                    "src": "10543:4:10"
                  }
                ],
                "id": 5378,
                "name": "ParameterList",
                "src": "10542:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 5378
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "register",
                          "referencedDeclaration": 4585,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.GlobalConstraintRegister storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "globalConstraintsRegister",
                                  "referencedDeclaration": 4603,
                                  "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UController.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4610,
                                          "type": "mapping(address => struct UController.Organization storage ref)",
                                          "value": "organizations"
                                        },
                                        "id": 5379,
                                        "name": "Identifier",
                                        "src": "10566:13:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5374,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5380,
                                        "name": "Identifier",
                                        "src": "10580:7:10"
                                      }
                                    ],
                                    "id": 5381,
                                    "name": "IndexAccess",
                                    "src": "10566:22:10"
                                  }
                                ],
                                "id": 5382,
                                "name": "MemberAccess",
                                "src": "10566:48:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5372,
                                  "type": "address",
                                  "value": "_globalConstraint"
                                },
                                "id": 5383,
                                "name": "Identifier",
                                "src": "10615:17:10"
                              }
                            ],
                            "id": 5384,
                            "name": "IndexAccess",
                            "src": "10566:67:10"
                          }
                        ],
                        "id": 5385,
                        "name": "MemberAccess",
                        "src": "10566:76:10"
                      }
                    ],
                    "id": 5386,
                    "name": "Return",
                    "src": "10559:83:10"
                  }
                ],
                "id": 5387,
                "name": "Block",
                "src": "10549:100:10"
              }
            ],
            "id": 5388,
            "name": "FunctionDefinition",
            "src": "10440:209:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "addGlobalConstraint",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4270,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_globalConstraint",
                      "scope": 5464,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5389,
                        "name": "ElementaryTypeName",
                        "src": "10974:7:10"
                      }
                    ],
                    "id": 5390,
                    "name": "VariableDeclaration",
                    "src": "10974:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 5464,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 5391,
                        "name": "ElementaryTypeName",
                        "src": "11001:7:10"
                      }
                    ],
                    "id": 5392,
                    "name": "VariableDeclaration",
                    "src": "11001:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5464,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5393,
                        "name": "ElementaryTypeName",
                        "src": "11017:7:10"
                      }
                    ],
                    "id": 5394,
                    "name": "VariableDeclaration",
                    "src": "11017:15:10"
                  }
                ],
                "id": 5395,
                "name": "ParameterList",
                "src": "10973:60:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5464,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5399,
                        "name": "ElementaryTypeName",
                        "src": "11090:4:10"
                      }
                    ],
                    "id": 5400,
                    "name": "VariableDeclaration",
                    "src": "11090:4:10"
                  }
                ],
                "id": 5401,
                "name": "ParameterList",
                "src": "11089:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4890,
                      "type": "modifier (address)",
                      "value": "onlyGlobalConstraintsScheme"
                    },
                    "id": 5396,
                    "name": "Identifier",
                    "src": "11045:27:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5394,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5397,
                    "name": "Identifier",
                    "src": "11073:7:10"
                  }
                ],
                "id": 5398,
                "name": "ModifierInvocation",
                "src": "11045:36:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5403
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "organization",
                          "scope": 5464,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct UController.Organization storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Organization",
                              "referencedDeclaration": 4606,
                              "type": "struct UController.Organization storage pointer"
                            },
                            "id": 5402,
                            "name": "UserDefinedTypeName",
                            "src": "11110:12:10"
                          }
                        ],
                        "id": 5403,
                        "name": "VariableDeclaration",
                        "src": "11110:33:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct UController.Organization storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4610,
                              "type": "mapping(address => struct UController.Organization storage ref)",
                              "value": "organizations"
                            },
                            "id": 5404,
                            "name": "Identifier",
                            "src": "11146:13:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5394,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5405,
                            "name": "Identifier",
                            "src": "11160:7:10"
                          }
                        ],
                        "id": 5406,
                        "name": "IndexAccess",
                        "src": "11146:22:10"
                      }
                    ],
                    "id": 5407,
                    "name": "VariableDeclarationStatement",
                    "src": "11110:58:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!",
                          "prefix": true,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "register",
                              "referencedDeclaration": 4585,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.GlobalConstraintRegister storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "globalConstraintsRegister",
                                      "referencedDeclaration": 4603,
                                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5403,
                                          "type": "struct UController.Organization storage pointer",
                                          "value": "organization"
                                        },
                                        "id": 5408,
                                        "name": "Identifier",
                                        "src": "11183:12:10"
                                      }
                                    ],
                                    "id": 5409,
                                    "name": "MemberAccess",
                                    "src": "11183:38:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5390,
                                      "type": "address",
                                      "value": "_globalConstraint"
                                    },
                                    "id": 5410,
                                    "name": "Identifier",
                                    "src": "11222:17:10"
                                  }
                                ],
                                "id": 5411,
                                "name": "IndexAccess",
                                "src": "11183:57:10"
                              }
                            ],
                            "id": 5412,
                            "name": "MemberAccess",
                            "src": "11183:66:10"
                          }
                        ],
                        "id": 5413,
                        "name": "UnaryOperation",
                        "src": "11182:67:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_struct$_GlobalConstraint_$4583_memory",
                                          "typeString": "struct UController.GlobalConstraint memory"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "push",
                                      "referencedDeclaration": null,
                                      "type": "function (struct UController.GlobalConstraint storage ref) returns (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "globalConstraints",
                                          "referencedDeclaration": 4599,
                                          "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5403,
                                              "type": "struct UController.Organization storage pointer",
                                              "value": "organization"
                                            },
                                            "id": 5414,
                                            "name": "Identifier",
                                            "src": "11265:12:10"
                                          }
                                        ],
                                        "id": 5417,
                                        "name": "MemberAccess",
                                        "src": "11265:30:10"
                                      }
                                    ],
                                    "id": 5418,
                                    "name": "MemberAccess",
                                    "src": "11265:35:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": true,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "struct UController.GlobalConstraint memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4583,
                                          "type": "type(struct UController.GlobalConstraint storage pointer)",
                                          "value": "GlobalConstraint"
                                        },
                                        "id": 5419,
                                        "name": "Identifier",
                                        "src": "11301:16:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5390,
                                          "type": "address",
                                          "value": "_globalConstraint"
                                        },
                                        "id": 5420,
                                        "name": "Identifier",
                                        "src": "11318:17:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5392,
                                          "type": "bytes32",
                                          "value": "_params"
                                        },
                                        "id": 5421,
                                        "name": "Identifier",
                                        "src": "11336:7:10"
                                      }
                                    ],
                                    "id": 5422,
                                    "name": "FunctionCall",
                                    "src": "11301:43:10"
                                  }
                                ],
                                "id": 5423,
                                "name": "FunctionCall",
                                "src": "11265:80:10"
                              }
                            ],
                            "id": 5424,
                            "name": "ExpressionStatement",
                            "src": "11265:80:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct UController.GlobalConstraintRegister storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct UController.GlobalConstraintRegister storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "globalConstraintsRegister",
                                          "referencedDeclaration": 4603,
                                          "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5403,
                                              "type": "struct UController.Organization storage pointer",
                                              "value": "organization"
                                            },
                                            "id": 5425,
                                            "name": "Identifier",
                                            "src": "11359:12:10"
                                          }
                                        ],
                                        "id": 5428,
                                        "name": "MemberAccess",
                                        "src": "11359:38:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5390,
                                          "type": "address",
                                          "value": "_globalConstraint"
                                        },
                                        "id": 5427,
                                        "name": "Identifier",
                                        "src": "11398:17:10"
                                      }
                                    ],
                                    "id": 5429,
                                    "name": "IndexAccess",
                                    "src": "11359:57:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": true,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "struct UController.GlobalConstraintRegister memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4588,
                                          "type": "type(struct UController.GlobalConstraintRegister storage pointer)",
                                          "value": "GlobalConstraintRegister"
                                        },
                                        "id": 5430,
                                        "name": "Identifier",
                                        "src": "11419:24:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "74727565",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "bool",
                                          "type": "bool",
                                          "value": "true"
                                        },
                                        "id": 5431,
                                        "name": "Literal",
                                        "src": "11444:4:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "-",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "length",
                                              "referencedDeclaration": null,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "globalConstraints",
                                                  "referencedDeclaration": 4599,
                                                  "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5403,
                                                      "type": "struct UController.Organization storage pointer",
                                                      "value": "organization"
                                                    },
                                                    "id": 5432,
                                                    "name": "Identifier",
                                                    "src": "11449:12:10"
                                                  }
                                                ],
                                                "id": 5433,
                                                "name": "MemberAccess",
                                                "src": "11449:30:10"
                                              }
                                            ],
                                            "id": 5434,
                                            "name": "MemberAccess",
                                            "src": "11449:37:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 5435,
                                            "name": "Literal",
                                            "src": "11487:1:10"
                                          }
                                        ],
                                        "id": 5436,
                                        "name": "BinaryOperation",
                                        "src": "11449:39:10"
                                      }
                                    ],
                                    "id": 5437,
                                    "name": "FunctionCall",
                                    "src": "11419:70:10"
                                  }
                                ],
                                "id": 5438,
                                "name": "Assignment",
                                "src": "11359:130:10"
                              }
                            ],
                            "id": 5439,
                            "name": "ExpressionStatement",
                            "src": "11359:130:10"
                          }
                        ],
                        "id": 5440,
                        "name": "Block",
                        "src": "11251:249:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bytes32"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "member_name": "params",
                                      "referencedDeclaration": 4582,
                                      "type": "bytes32"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.GlobalConstraint storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "globalConstraints",
                                              "referencedDeclaration": 4599,
                                              "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5403,
                                                  "type": "struct UController.Organization storage pointer",
                                                  "value": "organization"
                                                },
                                                "id": 5441,
                                                "name": "Identifier",
                                                "src": "11519:12:10"
                                              }
                                            ],
                                            "id": 5448,
                                            "name": "MemberAccess",
                                            "src": "11519:30:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "index",
                                              "referencedDeclaration": 4587,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.GlobalConstraintRegister storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "globalConstraintsRegister",
                                                      "referencedDeclaration": 4603,
                                                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 5403,
                                                          "type": "struct UController.Organization storage pointer",
                                                          "value": "organization"
                                                        },
                                                        "id": 5443,
                                                        "name": "Identifier",
                                                        "src": "11550:12:10"
                                                      }
                                                    ],
                                                    "id": 5444,
                                                    "name": "MemberAccess",
                                                    "src": "11550:38:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5390,
                                                      "type": "address",
                                                      "value": "_globalConstraint"
                                                    },
                                                    "id": 5445,
                                                    "name": "Identifier",
                                                    "src": "11589:17:10"
                                                  }
                                                ],
                                                "id": 5446,
                                                "name": "IndexAccess",
                                                "src": "11550:57:10"
                                              }
                                            ],
                                            "id": 5447,
                                            "name": "MemberAccess",
                                            "src": "11550:63:10"
                                          }
                                        ],
                                        "id": 5449,
                                        "name": "IndexAccess",
                                        "src": "11519:95:10"
                                      }
                                    ],
                                    "id": 5450,
                                    "name": "MemberAccess",
                                    "src": "11519:102:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5392,
                                      "type": "bytes32",
                                      "value": "_params"
                                    },
                                    "id": 5451,
                                    "name": "Identifier",
                                    "src": "11624:7:10"
                                  }
                                ],
                                "id": 5452,
                                "name": "Assignment",
                                "src": "11519:112:10"
                              }
                            ],
                            "id": 5453,
                            "name": "ExpressionStatement",
                            "src": "11519:112:10"
                          }
                        ],
                        "id": 5454,
                        "name": "Block",
                        "src": "11505:137:10"
                      }
                    ],
                    "id": 5455,
                    "name": "IfStatement",
                    "src": "11178:464:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4713,
                              "type": "function (address,bytes32)",
                              "value": "AddGlobalConstraint"
                            },
                            "id": 5456,
                            "name": "Identifier",
                            "src": "11651:19:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5390,
                              "type": "address",
                              "value": "_globalConstraint"
                            },
                            "id": 5457,
                            "name": "Identifier",
                            "src": "11671:17:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5392,
                              "type": "bytes32",
                              "value": "_params"
                            },
                            "id": 5458,
                            "name": "Identifier",
                            "src": "11690:7:10"
                          }
                        ],
                        "id": 5459,
                        "name": "FunctionCall",
                        "src": "11651:47:10"
                      }
                    ],
                    "id": 5460,
                    "name": "ExpressionStatement",
                    "src": "11651:47:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5401
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5461,
                        "name": "Literal",
                        "src": "11715:4:10"
                      }
                    ],
                    "id": 5462,
                    "name": "Return",
                    "src": "11708:11:10"
                  }
                ],
                "id": 5463,
                "name": "Block",
                "src": "11100:626:10"
              }
            ],
            "id": 5464,
            "name": "FunctionDefinition",
            "src": "10945:781:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "removeGlobalConstraint",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4279,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_globalConstraint",
                      "scope": 5562,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5465,
                        "name": "ElementaryTypeName",
                        "src": "11995:7:10"
                      }
                    ],
                    "id": 5466,
                    "name": "VariableDeclaration",
                    "src": "11995:25:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5562,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5467,
                        "name": "ElementaryTypeName",
                        "src": "12021:7:10"
                      }
                    ],
                    "id": 5468,
                    "name": "VariableDeclaration",
                    "src": "12021:15:10"
                  }
                ],
                "id": 5469,
                "name": "ParameterList",
                "src": "11994:43:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5562,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5473,
                        "name": "ElementaryTypeName",
                        "src": "12094:4:10"
                      }
                    ],
                    "id": 5474,
                    "name": "VariableDeclaration",
                    "src": "12094:4:10"
                  }
                ],
                "id": 5475,
                "name": "ParameterList",
                "src": "12093:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4890,
                      "type": "modifier (address)",
                      "value": "onlyGlobalConstraintsScheme"
                    },
                    "id": 5470,
                    "name": "Identifier",
                    "src": "12049:27:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5468,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5471,
                    "name": "Identifier",
                    "src": "12077:7:10"
                  }
                ],
                "id": 5472,
                "name": "ModifierInvocation",
                "src": "12049:36:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5477
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "globalConstraintRegister",
                          "scope": 5562,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct UController.GlobalConstraintRegister memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "GlobalConstraintRegister",
                              "referencedDeclaration": 4588,
                              "type": "struct UController.GlobalConstraintRegister storage pointer"
                            },
                            "id": 5476,
                            "name": "UserDefinedTypeName",
                            "src": "12114:24:10"
                          }
                        ],
                        "id": 5477,
                        "name": "VariableDeclaration",
                        "src": "12114:56:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct UController.GlobalConstraintRegister storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "globalConstraintsRegister",
                              "referencedDeclaration": 4603,
                              "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UController.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4610,
                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                      "value": "organizations"
                                    },
                                    "id": 5478,
                                    "name": "Identifier",
                                    "src": "12173:13:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5468,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 5479,
                                    "name": "Identifier",
                                    "src": "12187:7:10"
                                  }
                                ],
                                "id": 5480,
                                "name": "IndexAccess",
                                "src": "12173:22:10"
                              }
                            ],
                            "id": 5481,
                            "name": "MemberAccess",
                            "src": "12173:48:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5466,
                              "type": "address",
                              "value": "_globalConstraint"
                            },
                            "id": 5482,
                            "name": "Identifier",
                            "src": "12222:17:10"
                          }
                        ],
                        "id": 5483,
                        "name": "IndexAccess",
                        "src": "12173:67:10"
                      }
                    ],
                    "id": 5484,
                    "name": "VariableDeclarationStatement",
                    "src": "12114:126:10"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        5488
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "globalConstraints",
                          "scope": 5562,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "length": null,
                              "type": "struct UController.GlobalConstraint storage ref[] storage pointer"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "contractScope": null,
                                  "name": "GlobalConstraint",
                                  "referencedDeclaration": 4583,
                                  "type": "struct UController.GlobalConstraint storage pointer"
                                },
                                "id": 5486,
                                "name": "UserDefinedTypeName",
                                "src": "12250:16:10"
                              }
                            ],
                            "id": 5487,
                            "name": "ArrayTypeName",
                            "src": "12250:18:10"
                          }
                        ],
                        "id": 5488,
                        "name": "VariableDeclaration",
                        "src": "12250:44:10"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "globalConstraints",
                          "referencedDeclaration": 4599,
                          "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct UController.Organization storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4610,
                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                  "value": "organizations"
                                },
                                "id": 5489,
                                "name": "Identifier",
                                "src": "12297:13:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5468,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 5490,
                                "name": "Identifier",
                                "src": "12311:7:10"
                              }
                            ],
                            "id": 5491,
                            "name": "IndexAccess",
                            "src": "12297:22:10"
                          }
                        ],
                        "id": 5492,
                        "name": "MemberAccess",
                        "src": "12297:40:10"
                      }
                    ],
                    "id": 5493,
                    "name": "VariableDeclarationStatement",
                    "src": "12250:87:10"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "register",
                          "referencedDeclaration": 4585,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5477,
                              "type": "struct UController.GlobalConstraintRegister memory",
                              "value": "globalConstraintRegister"
                            },
                            "id": 5494,
                            "name": "Identifier",
                            "src": "12353:24:10"
                          }
                        ],
                        "id": 5495,
                        "name": "MemberAccess",
                        "src": "12353:33:10"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "index",
                                      "referencedDeclaration": 4587,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5477,
                                          "type": "struct UController.GlobalConstraintRegister memory",
                                          "value": "globalConstraintRegister"
                                        },
                                        "id": 5496,
                                        "name": "Identifier",
                                        "src": "12406:24:10"
                                      }
                                    ],
                                    "id": 5497,
                                    "name": "MemberAccess",
                                    "src": "12406:30:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "length",
                                          "referencedDeclaration": null,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5488,
                                              "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                              "value": "globalConstraints"
                                            },
                                            "id": 5498,
                                            "name": "Identifier",
                                            "src": "12439:17:10"
                                          }
                                        ],
                                        "id": 5499,
                                        "name": "MemberAccess",
                                        "src": "12439:24:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 5500,
                                        "name": "Literal",
                                        "src": "12464:1:10"
                                      }
                                    ],
                                    "id": 5501,
                                    "name": "BinaryOperation",
                                    "src": "12439:26:10"
                                  }
                                ],
                                "id": 5502,
                                "name": "BinaryOperation",
                                "src": "12406:59:10"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "assignments": [
                                        5504
                                      ]
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "constant": false,
                                          "name": "globalConstraint",
                                          "scope": 5562,
                                          "stateVariable": false,
                                          "storageLocation": "memory",
                                          "type": "struct UController.GlobalConstraint memory",
                                          "value": null,
                                          "visibility": "internal"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "contractScope": null,
                                              "name": "GlobalConstraint",
                                              "referencedDeclaration": 4583,
                                              "type": "struct UController.GlobalConstraint storage pointer"
                                            },
                                            "id": 5503,
                                            "name": "UserDefinedTypeName",
                                            "src": "12485:16:10"
                                          }
                                        ],
                                        "id": 5504,
                                        "name": "VariableDeclaration",
                                        "src": "12485:40:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.GlobalConstraint storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "globalConstraints",
                                              "referencedDeclaration": 4599,
                                              "type": "struct UController.GlobalConstraint storage ref[] storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.Organization storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4610,
                                                      "type": "mapping(address => struct UController.Organization storage ref)",
                                                      "value": "organizations"
                                                    },
                                                    "id": 5505,
                                                    "name": "Identifier",
                                                    "src": "12528:13:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5468,
                                                      "type": "address",
                                                      "value": "_avatar"
                                                    },
                                                    "id": 5506,
                                                    "name": "Identifier",
                                                    "src": "12542:7:10"
                                                  }
                                                ],
                                                "id": 5507,
                                                "name": "IndexAccess",
                                                "src": "12528:22:10"
                                              }
                                            ],
                                            "id": 5508,
                                            "name": "MemberAccess",
                                            "src": "12528:40:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "-",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "length",
                                                  "referencedDeclaration": null,
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5488,
                                                      "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                                      "value": "globalConstraints"
                                                    },
                                                    "id": 5509,
                                                    "name": "Identifier",
                                                    "src": "12569:17:10"
                                                  }
                                                ],
                                                "id": 5510,
                                                "name": "MemberAccess",
                                                "src": "12569:24:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "hexvalue": "31",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "subdenomination": null,
                                                  "token": "number",
                                                  "type": "int_const 1",
                                                  "value": "1"
                                                },
                                                "id": 5511,
                                                "name": "Literal",
                                                "src": "12594:1:10"
                                              }
                                            ],
                                            "id": 5512,
                                            "name": "BinaryOperation",
                                            "src": "12569:26:10"
                                          }
                                        ],
                                        "id": 5513,
                                        "name": "IndexAccess",
                                        "src": "12528:68:10"
                                      }
                                    ],
                                    "id": 5514,
                                    "name": "VariableDeclarationStatement",
                                    "src": "12485:111:10"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "struct UController.GlobalConstraint storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": true,
                                              "type": "struct UController.GlobalConstraint storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5488,
                                                  "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                                  "value": "globalConstraints"
                                                },
                                                "id": 5515,
                                                "name": "Identifier",
                                                "src": "12614:17:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "index",
                                                  "referencedDeclaration": 4587,
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 5477,
                                                      "type": "struct UController.GlobalConstraintRegister memory",
                                                      "value": "globalConstraintRegister"
                                                    },
                                                    "id": 5516,
                                                    "name": "Identifier",
                                                    "src": "12632:24:10"
                                                  }
                                                ],
                                                "id": 5517,
                                                "name": "MemberAccess",
                                                "src": "12632:30:10"
                                              }
                                            ],
                                            "id": 5518,
                                            "name": "IndexAccess",
                                            "src": "12614:49:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5504,
                                              "type": "struct UController.GlobalConstraint memory",
                                              "value": "globalConstraint"
                                            },
                                            "id": 5519,
                                            "name": "Identifier",
                                            "src": "12666:16:10"
                                          }
                                        ],
                                        "id": 5520,
                                        "name": "Assignment",
                                        "src": "12614:68:10"
                                      }
                                    ],
                                    "id": 5521,
                                    "name": "ExpressionStatement",
                                    "src": "12614:68:10"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": true,
                                              "member_name": "index",
                                              "referencedDeclaration": 4587,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "type": "struct UController.GlobalConstraintRegister storage ref"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "globalConstraintsRegister",
                                                      "referencedDeclaration": 4603,
                                                      "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": true,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "type": "struct UController.Organization storage ref"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 4610,
                                                              "type": "mapping(address => struct UController.Organization storage ref)",
                                                              "value": "organizations"
                                                            },
                                                            "id": 5522,
                                                            "name": "Identifier",
                                                            "src": "12700:13:10"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 5468,
                                                              "type": "address",
                                                              "value": "_avatar"
                                                            },
                                                            "id": 5523,
                                                            "name": "Identifier",
                                                            "src": "12714:7:10"
                                                          }
                                                        ],
                                                        "id": 5524,
                                                        "name": "IndexAccess",
                                                        "src": "12700:22:10"
                                                      }
                                                    ],
                                                    "id": 5525,
                                                    "name": "MemberAccess",
                                                    "src": "12700:48:10"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "member_name": "gcAddress",
                                                      "referencedDeclaration": 4580,
                                                      "type": "address"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 5504,
                                                          "type": "struct UController.GlobalConstraint memory",
                                                          "value": "globalConstraint"
                                                        },
                                                        "id": 5526,
                                                        "name": "Identifier",
                                                        "src": "12749:16:10"
                                                      }
                                                    ],
                                                    "id": 5527,
                                                    "name": "MemberAccess",
                                                    "src": "12749:26:10"
                                                  }
                                                ],
                                                "id": 5528,
                                                "name": "IndexAccess",
                                                "src": "12700:76:10"
                                              }
                                            ],
                                            "id": 5529,
                                            "name": "MemberAccess",
                                            "src": "12700:82:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "index",
                                              "referencedDeclaration": 4587,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5477,
                                                  "type": "struct UController.GlobalConstraintRegister memory",
                                                  "value": "globalConstraintRegister"
                                                },
                                                "id": 5530,
                                                "name": "Identifier",
                                                "src": "12785:24:10"
                                              }
                                            ],
                                            "id": 5531,
                                            "name": "MemberAccess",
                                            "src": "12785:30:10"
                                          }
                                        ],
                                        "id": 5532,
                                        "name": "Assignment",
                                        "src": "12700:115:10"
                                      }
                                    ],
                                    "id": 5533,
                                    "name": "ExpressionStatement",
                                    "src": "12700:115:10"
                                  }
                                ],
                                "id": 5534,
                                "name": "Block",
                                "src": "12467:363:10"
                              }
                            ],
                            "id": 5535,
                            "name": "IfStatement",
                            "src": "12402:428:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "--",
                                  "prefix": false,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "member_name": "length",
                                      "referencedDeclaration": null,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5488,
                                          "type": "struct UController.GlobalConstraint storage ref[] storage pointer",
                                          "value": "globalConstraints"
                                        },
                                        "id": 5536,
                                        "name": "Identifier",
                                        "src": "12843:17:10"
                                      }
                                    ],
                                    "id": 5538,
                                    "name": "MemberAccess",
                                    "src": "12843:24:10"
                                  }
                                ],
                                "id": 5539,
                                "name": "UnaryOperation",
                                "src": "12843:26:10"
                              }
                            ],
                            "id": 5540,
                            "name": "ExpressionStatement",
                            "src": "12843:26:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "delete",
                                  "prefix": true,
                                  "type": "tuple()"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct UController.GlobalConstraintRegister storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "globalConstraintsRegister",
                                          "referencedDeclaration": 4603,
                                          "type": "mapping(address => struct UController.GlobalConstraintRegister storage ref)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.Organization storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4610,
                                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                                  "value": "organizations"
                                                },
                                                "id": 5541,
                                                "name": "Identifier",
                                                "src": "12890:13:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5468,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 5542,
                                                "name": "Identifier",
                                                "src": "12904:7:10"
                                              }
                                            ],
                                            "id": 5543,
                                            "name": "IndexAccess",
                                            "src": "12890:22:10"
                                          }
                                        ],
                                        "id": 5544,
                                        "name": "MemberAccess",
                                        "src": "12890:48:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5466,
                                          "type": "address",
                                          "value": "_globalConstraint"
                                        },
                                        "id": 5545,
                                        "name": "Identifier",
                                        "src": "12939:17:10"
                                      }
                                    ],
                                    "id": 5546,
                                    "name": "IndexAccess",
                                    "src": "12890:67:10"
                                  }
                                ],
                                "id": 5547,
                                "name": "UnaryOperation",
                                "src": "12883:74:10"
                              }
                            ],
                            "id": 5548,
                            "name": "ExpressionStatement",
                            "src": "12883:74:10"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4719,
                                      "type": "function (address,uint256)",
                                      "value": "RemoveGlobalConstraint"
                                    },
                                    "id": 5549,
                                    "name": "Identifier",
                                    "src": "12971:22:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5466,
                                      "type": "address",
                                      "value": "_globalConstraint"
                                    },
                                    "id": 5550,
                                    "name": "Identifier",
                                    "src": "12994:17:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "index",
                                      "referencedDeclaration": 4587,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5477,
                                          "type": "struct UController.GlobalConstraintRegister memory",
                                          "value": "globalConstraintRegister"
                                        },
                                        "id": 5551,
                                        "name": "Identifier",
                                        "src": "13012:24:10"
                                      }
                                    ],
                                    "id": 5552,
                                    "name": "MemberAccess",
                                    "src": "13012:30:10"
                                  }
                                ],
                                "id": 5553,
                                "name": "FunctionCall",
                                "src": "12971:72:10"
                              }
                            ],
                            "id": 5554,
                            "name": "ExpressionStatement",
                            "src": "12971:72:10"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 5475
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "74727565",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "true"
                                },
                                "id": 5555,
                                "name": "Literal",
                                "src": "13064:4:10"
                              }
                            ],
                            "id": 5556,
                            "name": "Return",
                            "src": "13057:11:10"
                          }
                        ],
                        "id": 5557,
                        "name": "Block",
                        "src": "12388:691:10"
                      }
                    ],
                    "id": 5558,
                    "name": "IfStatement",
                    "src": "12349:730:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5475
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "66616c7365",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "false"
                        },
                        "id": 5559,
                        "name": "Literal",
                        "src": "13095:5:10"
                      }
                    ],
                    "id": 5560,
                    "name": "Return",
                    "src": "13088:12:10"
                  }
                ],
                "id": 5561,
                "name": "Block",
                "src": "12104:1003:10"
              }
            ],
            "id": 5562,
            "name": "FunctionDefinition",
            "src": "11962:1145:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "upgradeController",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4288,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_newController",
                      "scope": 5655,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5563,
                        "name": "ElementaryTypeName",
                        "src": "13410:7:10"
                      }
                    ],
                    "id": 5564,
                    "name": "VariableDeclaration",
                    "src": "13410:22:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5655,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5565,
                        "name": "ElementaryTypeName",
                        "src": "13433:7:10"
                      }
                    ],
                    "id": 5566,
                    "name": "VariableDeclaration",
                    "src": "13433:15:10"
                  }
                ],
                "id": 5567,
                "name": "ParameterList",
                "src": "13409:40:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5655,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5571,
                        "name": "ElementaryTypeName",
                        "src": "13498:4:10"
                      }
                    ],
                    "id": 5572,
                    "name": "VariableDeclaration",
                    "src": "13498:4:10"
                  }
                ],
                "id": 5573,
                "name": "ParameterList",
                "src": "13497:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4915,
                      "type": "modifier (address)",
                      "value": "onlyUpgradingScheme"
                    },
                    "id": 5568,
                    "name": "Identifier",
                    "src": "13461:19:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5566,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5569,
                    "name": "Identifier",
                    "src": "13481:7:10"
                  }
                ],
                "id": 5570,
                "name": "ModifierInvocation",
                "src": "13461:28:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5574,
                            "name": "Identifier",
                            "src": "13518:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4614,
                                      "type": "mapping(address => address)",
                                      "value": "newControllers"
                                    },
                                    "id": 5575,
                                    "name": "Identifier",
                                    "src": "13526:14:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5566,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 5576,
                                    "name": "Identifier",
                                    "src": "13541:7:10"
                                  }
                                ],
                                "id": 5577,
                                "name": "IndexAccess",
                                "src": "13526:23:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 5578,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "13553:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5579,
                                    "name": "Literal",
                                    "src": "13561:1:10"
                                  }
                                ],
                                "id": 5580,
                                "name": "FunctionCall",
                                "src": "13553:10:10"
                              }
                            ],
                            "id": 5581,
                            "name": "BinaryOperation",
                            "src": "13526:37:10"
                          }
                        ],
                        "id": 5582,
                        "name": "FunctionCall",
                        "src": "13518:46:10"
                      }
                    ],
                    "id": 5583,
                    "name": "ExpressionStatement",
                    "src": "13518:46:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10904,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 5584,
                            "name": "Identifier",
                            "src": "13629:7:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5564,
                                  "type": "address",
                                  "value": "_newController"
                                },
                                "id": 5585,
                                "name": "Identifier",
                                "src": "13637:14:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 5586,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "13655:7:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 5587,
                                    "name": "Literal",
                                    "src": "13663:1:10"
                                  }
                                ],
                                "id": 5588,
                                "name": "FunctionCall",
                                "src": "13655:10:10"
                              }
                            ],
                            "id": 5589,
                            "name": "BinaryOperation",
                            "src": "13637:28:10"
                          }
                        ],
                        "id": 5590,
                        "name": "FunctionCall",
                        "src": "13629:37:10"
                      }
                    ],
                    "id": 5591,
                    "name": "ExpressionStatement",
                    "src": "13629:37:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4614,
                                  "type": "mapping(address => address)",
                                  "value": "newControllers"
                                },
                                "id": 5592,
                                "name": "Identifier",
                                "src": "13676:14:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5566,
                                  "type": "address",
                                  "value": "_avatar"
                                },
                                "id": 5593,
                                "name": "Identifier",
                                "src": "13691:7:10"
                              }
                            ],
                            "id": 5594,
                            "name": "IndexAccess",
                            "src": "13676:23:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5564,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 5595,
                            "name": "Identifier",
                            "src": "13702:14:10"
                          }
                        ],
                        "id": 5596,
                        "name": "Assignment",
                        "src": "13676:40:10"
                      }
                    ],
                    "id": 5597,
                    "name": "ExpressionStatement",
                    "src": "13676:40:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "transferOwnership",
                              "referencedDeclaration": 10334,
                              "type": "function (address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5598,
                                        "name": "Identifier",
                                        "src": "13727:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5566,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5599,
                                        "name": "Identifier",
                                        "src": "13734:7:10"
                                      }
                                    ],
                                    "id": 5600,
                                    "name": "FunctionCall",
                                    "src": "13727:15:10"
                                  }
                                ],
                                "id": 5601,
                                "name": "TupleExpression",
                                "src": "13726:17:10"
                              }
                            ],
                            "id": 5602,
                            "name": "MemberAccess",
                            "src": "13726:35:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5564,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 5603,
                            "name": "Identifier",
                            "src": "13762:14:10"
                          }
                        ],
                        "id": 5604,
                        "name": "FunctionCall",
                        "src": "13726:51:10"
                      }
                    ],
                    "id": 5605,
                    "name": "ExpressionStatement",
                    "src": "13726:51:10"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "owner",
                                  "referencedDeclaration": 10283,
                                  "type": "function () view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "nativeToken",
                                      "referencedDeclaration": 4590,
                                      "type": "contract DAOToken"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Organization storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4610,
                                              "type": "mapping(address => struct UController.Organization storage ref)",
                                              "value": "organizations"
                                            },
                                            "id": 5606,
                                            "name": "Identifier",
                                            "src": "13791:13:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5566,
                                              "type": "address",
                                              "value": "_avatar"
                                            },
                                            "id": 5607,
                                            "name": "Identifier",
                                            "src": "13805:7:10"
                                          }
                                        ],
                                        "id": 5608,
                                        "name": "IndexAccess",
                                        "src": "13791:22:10"
                                      }
                                    ],
                                    "id": 5609,
                                    "name": "MemberAccess",
                                    "src": "13791:34:10"
                                  }
                                ],
                                "id": 5610,
                                "name": "MemberAccess",
                                "src": "13791:40:10"
                              }
                            ],
                            "id": 5611,
                            "name": "FunctionCall",
                            "src": "13791:42:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_UController_$5885",
                                      "typeString": "contract UController"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 5612,
                                "name": "ElementaryTypeNameExpression",
                                "src": "13837:7:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10960,
                                  "type": "contract UController",
                                  "value": "this"
                                },
                                "id": 5613,
                                "name": "Identifier",
                                "src": "13845:4:10"
                              }
                            ],
                            "id": 5614,
                            "name": "FunctionCall",
                            "src": "13837:13:10"
                          }
                        ],
                        "id": 5615,
                        "name": "BinaryOperation",
                        "src": "13791:59:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "transferOwnership",
                                      "referencedDeclaration": 10334,
                                      "type": "function (address) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "nativeToken",
                                          "referencedDeclaration": 4590,
                                          "type": "contract DAOToken"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.Organization storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4610,
                                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                                  "value": "organizations"
                                                },
                                                "id": 5616,
                                                "name": "Identifier",
                                                "src": "13866:13:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5566,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 5617,
                                                "name": "Identifier",
                                                "src": "13880:7:10"
                                              }
                                            ],
                                            "id": 5618,
                                            "name": "IndexAccess",
                                            "src": "13866:22:10"
                                          }
                                        ],
                                        "id": 5619,
                                        "name": "MemberAccess",
                                        "src": "13866:34:10"
                                      }
                                    ],
                                    "id": 5620,
                                    "name": "MemberAccess",
                                    "src": "13866:52:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5564,
                                      "type": "address",
                                      "value": "_newController"
                                    },
                                    "id": 5621,
                                    "name": "Identifier",
                                    "src": "13919:14:10"
                                  }
                                ],
                                "id": 5622,
                                "name": "FunctionCall",
                                "src": "13866:68:10"
                              }
                            ],
                            "id": 5623,
                            "name": "ExpressionStatement",
                            "src": "13866:68:10"
                          }
                        ],
                        "id": 5624,
                        "name": "Block",
                        "src": "13852:93:10"
                      }
                    ],
                    "id": 5625,
                    "name": "IfStatement",
                    "src": "13787:158:10"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "owner",
                                  "referencedDeclaration": 10283,
                                  "type": "function () view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "nativeReputation",
                                      "referencedDeclaration": 4592,
                                      "type": "contract Reputation"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct UController.Organization storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4610,
                                              "type": "mapping(address => struct UController.Organization storage ref)",
                                              "value": "organizations"
                                            },
                                            "id": 5626,
                                            "name": "Identifier",
                                            "src": "13958:13:10"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 5566,
                                              "type": "address",
                                              "value": "_avatar"
                                            },
                                            "id": 5627,
                                            "name": "Identifier",
                                            "src": "13972:7:10"
                                          }
                                        ],
                                        "id": 5628,
                                        "name": "IndexAccess",
                                        "src": "13958:22:10"
                                      }
                                    ],
                                    "id": 5629,
                                    "name": "MemberAccess",
                                    "src": "13958:39:10"
                                  }
                                ],
                                "id": 5630,
                                "name": "MemberAccess",
                                "src": "13958:45:10"
                              }
                            ],
                            "id": 5631,
                            "name": "FunctionCall",
                            "src": "13958:47:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_UController_$5885",
                                      "typeString": "contract UController"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 5632,
                                "name": "ElementaryTypeNameExpression",
                                "src": "14009:7:10"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10960,
                                  "type": "contract UController",
                                  "value": "this"
                                },
                                "id": 5633,
                                "name": "Identifier",
                                "src": "14017:4:10"
                              }
                            ],
                            "id": 5634,
                            "name": "FunctionCall",
                            "src": "14009:13:10"
                          }
                        ],
                        "id": 5635,
                        "name": "BinaryOperation",
                        "src": "13958:64:10"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "transferOwnership",
                                      "referencedDeclaration": 10334,
                                      "type": "function (address) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "nativeReputation",
                                          "referencedDeclaration": 4592,
                                          "type": "contract Reputation"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "struct UController.Organization storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4610,
                                                  "type": "mapping(address => struct UController.Organization storage ref)",
                                                  "value": "organizations"
                                                },
                                                "id": 5636,
                                                "name": "Identifier",
                                                "src": "14038:13:10"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5566,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 5637,
                                                "name": "Identifier",
                                                "src": "14052:7:10"
                                              }
                                            ],
                                            "id": 5638,
                                            "name": "IndexAccess",
                                            "src": "14038:22:10"
                                          }
                                        ],
                                        "id": 5639,
                                        "name": "MemberAccess",
                                        "src": "14038:39:10"
                                      }
                                    ],
                                    "id": 5640,
                                    "name": "MemberAccess",
                                    "src": "14038:57:10"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5564,
                                      "type": "address",
                                      "value": "_newController"
                                    },
                                    "id": 5641,
                                    "name": "Identifier",
                                    "src": "14096:14:10"
                                  }
                                ],
                                "id": 5642,
                                "name": "FunctionCall",
                                "src": "14038:73:10"
                              }
                            ],
                            "id": 5643,
                            "name": "ExpressionStatement",
                            "src": "14038:73:10"
                          }
                        ],
                        "id": 5644,
                        "name": "Block",
                        "src": "14024:98:10"
                      }
                    ],
                    "id": 5645,
                    "name": "IfStatement",
                    "src": "13954:168:10"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_UController_$5885",
                                  "typeString": "contract UController"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4727,
                              "type": "function (address,address,address)",
                              "value": "UpgradeController"
                            },
                            "id": 5646,
                            "name": "Identifier",
                            "src": "14131:17:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10960,
                              "type": "contract UController",
                              "value": "this"
                            },
                            "id": 5647,
                            "name": "Identifier",
                            "src": "14149:4:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5564,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 5648,
                            "name": "Identifier",
                            "src": "14154:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5566,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 5649,
                            "name": "Identifier",
                            "src": "14169:7:10"
                          }
                        ],
                        "id": 5650,
                        "name": "FunctionCall",
                        "src": "14131:46:10"
                      }
                    ],
                    "id": 5651,
                    "name": "ExpressionStatement",
                    "src": "14131:46:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5573
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 5652,
                        "name": "Literal",
                        "src": "14194:4:10"
                      }
                    ],
                    "id": 5653,
                    "name": "Return",
                    "src": "14187:11:10"
                  }
                ],
                "id": 5654,
                "name": "Block",
                "src": "13508:697:10"
              }
            ],
            "id": 5655,
            "name": "FunctionDefinition",
            "src": "13383:822:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "genericAction",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4298,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 5689,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32[] memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "bytes32[] storage pointer"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 5656,
                            "name": "ElementaryTypeName",
                            "src": "14614:7:10"
                          }
                        ],
                        "id": 5657,
                        "name": "ArrayTypeName",
                        "src": "14614:9:10"
                      }
                    ],
                    "id": 5658,
                    "name": "VariableDeclaration",
                    "src": "14614:17:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5689,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5659,
                        "name": "ElementaryTypeName",
                        "src": "14632:7:10"
                      }
                    ],
                    "id": 5660,
                    "name": "VariableDeclaration",
                    "src": "14632:15:10"
                  }
                ],
                "id": 5661,
                "name": "ParameterList",
                "src": "14613:35:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5689,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5669,
                        "name": "ElementaryTypeName",
                        "src": "14759:4:10"
                      }
                    ],
                    "id": 5670,
                    "name": "VariableDeclaration",
                    "src": "14759:4:10"
                  }
                ],
                "id": 5671,
                "name": "ParameterList",
                "src": "14758:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4840,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5662,
                    "name": "Identifier",
                    "src": "14664:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5660,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5663,
                    "name": "Identifier",
                    "src": "14685:7:10"
                  }
                ],
                "id": 5664,
                "name": "ModifierInvocation",
                "src": "14664:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5665,
                    "name": "Identifier",
                    "src": "14698:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "67656e65726963416374696f6e",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"genericAction\"",
                      "value": "genericAction"
                    },
                    "id": 5666,
                    "name": "Literal",
                    "src": "14722:15:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5660,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5667,
                    "name": "Identifier",
                    "src": "14738:7:10"
                  }
                ],
                "id": 5668,
                "name": "ModifierInvocation",
                "src": "14698:48:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4657,
                              "type": "function (address,bytes32[] memory)",
                              "value": "GenericAction"
                            },
                            "id": 5672,
                            "name": "Identifier",
                            "src": "14779:13:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5673,
                                "name": "Identifier",
                                "src": "14793:3:10"
                              }
                            ],
                            "id": 5674,
                            "name": "MemberAccess",
                            "src": "14793:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5658,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 5675,
                            "name": "Identifier",
                            "src": "14805:7:10"
                          }
                        ],
                        "id": 5676,
                        "name": "FunctionCall",
                        "src": "14779:34:10"
                      }
                    ],
                    "id": 5677,
                    "name": "ExpressionStatement",
                    "src": "14779:34:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5671
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "genericAction",
                              "referencedDeclaration": 2919,
                              "type": "function (address,bytes32[] memory) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5678,
                                        "name": "Identifier",
                                        "src": "14831:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5660,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5679,
                                        "name": "Identifier",
                                        "src": "14838:7:10"
                                      }
                                    ],
                                    "id": 5680,
                                    "name": "FunctionCall",
                                    "src": "14831:15:10"
                                  }
                                ],
                                "id": 5681,
                                "name": "TupleExpression",
                                "src": "14830:17:10"
                              }
                            ],
                            "id": 5682,
                            "name": "MemberAccess",
                            "src": "14830:31:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5683,
                                "name": "Identifier",
                                "src": "14862:3:10"
                              }
                            ],
                            "id": 5684,
                            "name": "MemberAccess",
                            "src": "14862:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5658,
                              "type": "bytes32[] memory",
                              "value": "_params"
                            },
                            "id": 5685,
                            "name": "Identifier",
                            "src": "14874:7:10"
                          }
                        ],
                        "id": 5686,
                        "name": "FunctionCall",
                        "src": "14830:52:10"
                      }
                    ],
                    "id": 5687,
                    "name": "Return",
                    "src": "14823:59:10"
                  }
                ],
                "id": 5688,
                "name": "Block",
                "src": "14769:120:10"
              }
            ],
            "id": 5689,
            "name": "FunctionDefinition",
            "src": "14591:298:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "sendEther",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4309,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_amountInWei",
                      "scope": 5724,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5690,
                        "name": "ElementaryTypeName",
                        "src": "15147:4:10"
                      }
                    ],
                    "id": 5691,
                    "name": "VariableDeclaration",
                    "src": "15147:17:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 5724,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5692,
                        "name": "ElementaryTypeName",
                        "src": "15166:7:10"
                      }
                    ],
                    "id": 5693,
                    "name": "VariableDeclaration",
                    "src": "15166:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5724,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5694,
                        "name": "ElementaryTypeName",
                        "src": "15178:7:10"
                      }
                    ],
                    "id": 5695,
                    "name": "VariableDeclaration",
                    "src": "15178:15:10"
                  }
                ],
                "id": 5696,
                "name": "ParameterList",
                "src": "15146:48:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5724,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5704,
                        "name": "ElementaryTypeName",
                        "src": "15301:4:10"
                      }
                    ],
                    "id": 5705,
                    "name": "VariableDeclaration",
                    "src": "15301:4:10"
                  }
                ],
                "id": 5706,
                "name": "ParameterList",
                "src": "15300:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4840,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5697,
                    "name": "Identifier",
                    "src": "15210:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5695,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5698,
                    "name": "Identifier",
                    "src": "15231:7:10"
                  }
                ],
                "id": 5699,
                "name": "ModifierInvocation",
                "src": "15210:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5700,
                    "name": "Identifier",
                    "src": "15244:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "73656e644574686572",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"sendEther\"",
                      "value": "sendEther"
                    },
                    "id": 5701,
                    "name": "Literal",
                    "src": "15268:11:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5695,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5702,
                    "name": "Identifier",
                    "src": "15280:7:10"
                  }
                ],
                "id": 5703,
                "name": "ModifierInvocation",
                "src": "15244:44:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4665,
                              "type": "function (address,uint256,address)",
                              "value": "SendEther"
                            },
                            "id": 5707,
                            "name": "Identifier",
                            "src": "15321:9:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5708,
                                "name": "Identifier",
                                "src": "15331:3:10"
                              }
                            ],
                            "id": 5709,
                            "name": "MemberAccess",
                            "src": "15331:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5691,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 5710,
                            "name": "Identifier",
                            "src": "15343:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5693,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5711,
                            "name": "Identifier",
                            "src": "15357:3:10"
                          }
                        ],
                        "id": 5712,
                        "name": "FunctionCall",
                        "src": "15321:40:10"
                      }
                    ],
                    "id": 5713,
                    "name": "ExpressionStatement",
                    "src": "15321:40:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5706
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sendEther",
                              "referencedDeclaration": 2944,
                              "type": "function (uint256,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5714,
                                        "name": "Identifier",
                                        "src": "15379:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5695,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5715,
                                        "name": "Identifier",
                                        "src": "15386:7:10"
                                      }
                                    ],
                                    "id": 5716,
                                    "name": "FunctionCall",
                                    "src": "15379:15:10"
                                  }
                                ],
                                "id": 5717,
                                "name": "TupleExpression",
                                "src": "15378:17:10"
                              }
                            ],
                            "id": 5718,
                            "name": "MemberAccess",
                            "src": "15378:27:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5691,
                              "type": "uint256",
                              "value": "_amountInWei"
                            },
                            "id": 5719,
                            "name": "Identifier",
                            "src": "15406:12:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5693,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5720,
                            "name": "Identifier",
                            "src": "15420:3:10"
                          }
                        ],
                        "id": 5721,
                        "name": "FunctionCall",
                        "src": "15378:46:10"
                      }
                    ],
                    "id": 5722,
                    "name": "Return",
                    "src": "15371:53:10"
                  }
                ],
                "id": 5723,
                "name": "Block",
                "src": "15311:120:10"
              }
            ],
            "id": 5724,
            "name": "FunctionDefinition",
            "src": "15128:303:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransfer",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4322,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 5763,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10889,
                          "type": "contract StandardToken"
                        },
                        "id": 5725,
                        "name": "UserDefinedTypeName",
                        "src": "15792:13:10"
                      }
                    ],
                    "id": 5726,
                    "name": "VariableDeclaration",
                    "src": "15792:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 5763,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5727,
                        "name": "ElementaryTypeName",
                        "src": "15822:7:10"
                      }
                    ],
                    "id": 5728,
                    "name": "VariableDeclaration",
                    "src": "15822:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 5763,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5729,
                        "name": "ElementaryTypeName",
                        "src": "15835:4:10"
                      }
                    ],
                    "id": 5730,
                    "name": "VariableDeclaration",
                    "src": "15835:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5763,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5731,
                        "name": "ElementaryTypeName",
                        "src": "15847:7:10"
                      }
                    ],
                    "id": 5732,
                    "name": "VariableDeclaration",
                    "src": "15847:15:10"
                  }
                ],
                "id": 5733,
                "name": "ParameterList",
                "src": "15791:72:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5763,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5741,
                        "name": "ElementaryTypeName",
                        "src": "15982:4:10"
                      }
                    ],
                    "id": 5742,
                    "name": "VariableDeclaration",
                    "src": "15982:4:10"
                  }
                ],
                "id": 5743,
                "name": "ParameterList",
                "src": "15981:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4840,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5734,
                    "name": "Identifier",
                    "src": "15879:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5732,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5735,
                    "name": "Identifier",
                    "src": "15900:7:10"
                  }
                ],
                "id": 5736,
                "name": "ModifierInvocation",
                "src": "15879:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5737,
                    "name": "Identifier",
                    "src": "15913:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e5472616e73666572",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenTransfer\"",
                      "value": "externalTokenTransfer"
                    },
                    "id": 5738,
                    "name": "Literal",
                    "src": "15937:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5732,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5739,
                    "name": "Identifier",
                    "src": "15961:7:10"
                  }
                ],
                "id": 5740,
                "name": "ModifierInvocation",
                "src": "15913:56:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10889",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4675,
                              "type": "function (address,address,address,uint256)",
                              "value": "ExternalTokenTransfer"
                            },
                            "id": 5744,
                            "name": "Identifier",
                            "src": "16002:21:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5745,
                                "name": "Identifier",
                                "src": "16024:3:10"
                              }
                            ],
                            "id": 5746,
                            "name": "MemberAccess",
                            "src": "16024:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5726,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5747,
                            "name": "Identifier",
                            "src": "16036:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5728,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5748,
                            "name": "Identifier",
                            "src": "16052:3:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5730,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 5749,
                            "name": "Identifier",
                            "src": "16057:6:10"
                          }
                        ],
                        "id": 5750,
                        "name": "FunctionCall",
                        "src": "16002:62:10"
                      }
                    ],
                    "id": 5751,
                    "name": "ExpressionStatement",
                    "src": "16002:62:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5743
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10889",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "externalTokenTransfer",
                              "referencedDeclaration": 2973,
                              "type": "function (contract StandardToken,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5752,
                                        "name": "Identifier",
                                        "src": "16082:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5732,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5753,
                                        "name": "Identifier",
                                        "src": "16089:7:10"
                                      }
                                    ],
                                    "id": 5754,
                                    "name": "FunctionCall",
                                    "src": "16082:15:10"
                                  }
                                ],
                                "id": 5755,
                                "name": "TupleExpression",
                                "src": "16081:17:10"
                              }
                            ],
                            "id": 5756,
                            "name": "MemberAccess",
                            "src": "16081:39:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5726,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5757,
                            "name": "Identifier",
                            "src": "16121:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5728,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5758,
                            "name": "Identifier",
                            "src": "16137:3:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5730,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 5759,
                            "name": "Identifier",
                            "src": "16142:6:10"
                          }
                        ],
                        "id": 5760,
                        "name": "FunctionCall",
                        "src": "16081:68:10"
                      }
                    ],
                    "id": 5761,
                    "name": "Return",
                    "src": "16074:75:10"
                  }
                ],
                "id": 5762,
                "name": "Block",
                "src": "15992:164:10"
              }
            ],
            "id": 5763,
            "name": "FunctionDefinition",
            "src": "15761:395:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenTransferFrom",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4337,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 5806,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10889,
                          "type": "contract StandardToken"
                        },
                        "id": 5764,
                        "name": "UserDefinedTypeName",
                        "src": "16727:13:10"
                      }
                    ],
                    "id": 5765,
                    "name": "VariableDeclaration",
                    "src": "16727:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_from",
                      "scope": 5806,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5766,
                        "name": "ElementaryTypeName",
                        "src": "16757:7:10"
                      }
                    ],
                    "id": 5767,
                    "name": "VariableDeclaration",
                    "src": "16757:13:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_to",
                      "scope": 5806,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5768,
                        "name": "ElementaryTypeName",
                        "src": "16772:7:10"
                      }
                    ],
                    "id": 5769,
                    "name": "VariableDeclaration",
                    "src": "16772:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_value",
                      "scope": 5806,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5770,
                        "name": "ElementaryTypeName",
                        "src": "16785:4:10"
                      }
                    ],
                    "id": 5771,
                    "name": "VariableDeclaration",
                    "src": "16785:11:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5806,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5772,
                        "name": "ElementaryTypeName",
                        "src": "16797:7:10"
                      }
                    ],
                    "id": 5773,
                    "name": "VariableDeclaration",
                    "src": "16797:15:10"
                  }
                ],
                "id": 5774,
                "name": "ParameterList",
                "src": "16726:87:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5806,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5782,
                        "name": "ElementaryTypeName",
                        "src": "16936:4:10"
                      }
                    ],
                    "id": 5783,
                    "name": "VariableDeclaration",
                    "src": "16936:4:10"
                  }
                ],
                "id": 5784,
                "name": "ParameterList",
                "src": "16935:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4840,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5775,
                    "name": "Identifier",
                    "src": "16829:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5773,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5776,
                    "name": "Identifier",
                    "src": "16850:7:10"
                  }
                ],
                "id": 5777,
                "name": "ModifierInvocation",
                "src": "16829:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5778,
                    "name": "Identifier",
                    "src": "16863:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e5472616e7366657246726f6d",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenTransferFrom\"",
                      "value": "externalTokenTransferFrom"
                    },
                    "id": 5779,
                    "name": "Literal",
                    "src": "16887:27:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5773,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5780,
                    "name": "Identifier",
                    "src": "16915:7:10"
                  }
                ],
                "id": 5781,
                "name": "ModifierInvocation",
                "src": "16863:60:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10889",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4687,
                              "type": "function (address,address,address,address,uint256)",
                              "value": "ExternalTokenTransferFrom"
                            },
                            "id": 5785,
                            "name": "Identifier",
                            "src": "16956:25:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5786,
                                "name": "Identifier",
                                "src": "16982:3:10"
                              }
                            ],
                            "id": 5787,
                            "name": "MemberAccess",
                            "src": "16982:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5765,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5788,
                            "name": "Identifier",
                            "src": "16994:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5767,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 5789,
                            "name": "Identifier",
                            "src": "17010:5:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5769,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5790,
                            "name": "Identifier",
                            "src": "17017:3:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5771,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 5791,
                            "name": "Identifier",
                            "src": "17022:6:10"
                          }
                        ],
                        "id": 5792,
                        "name": "FunctionCall",
                        "src": "16956:73:10"
                      }
                    ],
                    "id": 5793,
                    "name": "ExpressionStatement",
                    "src": "16956:73:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5784
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10889",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "externalTokenTransferFrom",
                              "referencedDeclaration": 3006,
                              "type": "function (contract StandardToken,address,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5794,
                                        "name": "Identifier",
                                        "src": "17047:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5773,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5795,
                                        "name": "Identifier",
                                        "src": "17054:7:10"
                                      }
                                    ],
                                    "id": 5796,
                                    "name": "FunctionCall",
                                    "src": "17047:15:10"
                                  }
                                ],
                                "id": 5797,
                                "name": "TupleExpression",
                                "src": "17046:17:10"
                              }
                            ],
                            "id": 5798,
                            "name": "MemberAccess",
                            "src": "17046:43:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5765,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5799,
                            "name": "Identifier",
                            "src": "17090:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5767,
                              "type": "address",
                              "value": "_from"
                            },
                            "id": 5800,
                            "name": "Identifier",
                            "src": "17106:5:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5769,
                              "type": "address",
                              "value": "_to"
                            },
                            "id": 5801,
                            "name": "Identifier",
                            "src": "17113:3:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5771,
                              "type": "uint256",
                              "value": "_value"
                            },
                            "id": 5802,
                            "name": "Identifier",
                            "src": "17118:6:10"
                          }
                        ],
                        "id": 5803,
                        "name": "FunctionCall",
                        "src": "17046:79:10"
                      }
                    ],
                    "id": 5804,
                    "name": "Return",
                    "src": "17039:86:10"
                  }
                ],
                "id": 5805,
                "name": "Block",
                "src": "16946:186:10"
              }
            ],
            "id": 5806,
            "name": "FunctionDefinition",
            "src": "16692:440:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenIncreaseApproval",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4350,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 5845,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10889,
                          "type": "contract StandardToken"
                        },
                        "id": 5807,
                        "name": "UserDefinedTypeName",
                        "src": "17593:13:10"
                      }
                    ],
                    "id": 5808,
                    "name": "VariableDeclaration",
                    "src": "17593:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 5845,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5809,
                        "name": "ElementaryTypeName",
                        "src": "17623:7:10"
                      }
                    ],
                    "id": 5810,
                    "name": "VariableDeclaration",
                    "src": "17623:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_addedValue",
                      "scope": 5845,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5811,
                        "name": "ElementaryTypeName",
                        "src": "17641:4:10"
                      }
                    ],
                    "id": 5812,
                    "name": "VariableDeclaration",
                    "src": "17641:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5845,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5813,
                        "name": "ElementaryTypeName",
                        "src": "17658:7:10"
                      }
                    ],
                    "id": 5814,
                    "name": "VariableDeclaration",
                    "src": "17658:15:10"
                  }
                ],
                "id": 5815,
                "name": "ParameterList",
                "src": "17592:82:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5845,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5823,
                        "name": "ElementaryTypeName",
                        "src": "17801:4:10"
                      }
                    ],
                    "id": 5824,
                    "name": "VariableDeclaration",
                    "src": "17801:4:10"
                  }
                ],
                "id": 5825,
                "name": "ParameterList",
                "src": "17800:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4840,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5816,
                    "name": "Identifier",
                    "src": "17690:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5814,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5817,
                    "name": "Identifier",
                    "src": "17711:7:10"
                  }
                ],
                "id": 5818,
                "name": "ModifierInvocation",
                "src": "17690:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5819,
                    "name": "Identifier",
                    "src": "17724:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e496e637265617365417070726f76616c",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenIncreaseApproval\"",
                      "value": "externalTokenIncreaseApproval"
                    },
                    "id": 5820,
                    "name": "Literal",
                    "src": "17748:31:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5814,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5821,
                    "name": "Identifier",
                    "src": "17780:7:10"
                  }
                ],
                "id": 5822,
                "name": "ModifierInvocation",
                "src": "17724:64:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10889",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4697,
                              "type": "function (address,contract StandardToken,address,uint256)",
                              "value": "ExternalTokenIncreaseApproval"
                            },
                            "id": 5826,
                            "name": "Identifier",
                            "src": "17821:29:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5827,
                                "name": "Identifier",
                                "src": "17851:3:10"
                              }
                            ],
                            "id": 5828,
                            "name": "MemberAccess",
                            "src": "17851:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5808,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5829,
                            "name": "Identifier",
                            "src": "17862:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5810,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 5830,
                            "name": "Identifier",
                            "src": "17877:8:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5812,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 5831,
                            "name": "Identifier",
                            "src": "17886:11:10"
                          }
                        ],
                        "id": 5832,
                        "name": "FunctionCall",
                        "src": "17821:77:10"
                      }
                    ],
                    "id": 5833,
                    "name": "ExpressionStatement",
                    "src": "17821:77:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5825
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10889",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "externalTokenIncreaseApproval",
                              "referencedDeclaration": 3035,
                              "type": "function (contract StandardToken,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5834,
                                        "name": "Identifier",
                                        "src": "17916:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5814,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5835,
                                        "name": "Identifier",
                                        "src": "17923:7:10"
                                      }
                                    ],
                                    "id": 5836,
                                    "name": "FunctionCall",
                                    "src": "17916:15:10"
                                  }
                                ],
                                "id": 5837,
                                "name": "TupleExpression",
                                "src": "17915:17:10"
                              }
                            ],
                            "id": 5838,
                            "name": "MemberAccess",
                            "src": "17915:47:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5808,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5839,
                            "name": "Identifier",
                            "src": "17963:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5810,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 5840,
                            "name": "Identifier",
                            "src": "17979:8:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5812,
                              "type": "uint256",
                              "value": "_addedValue"
                            },
                            "id": 5841,
                            "name": "Identifier",
                            "src": "17989:11:10"
                          }
                        ],
                        "id": 5842,
                        "name": "FunctionCall",
                        "src": "17915:86:10"
                      }
                    ],
                    "id": 5843,
                    "name": "Return",
                    "src": "17908:93:10"
                  }
                ],
                "id": 5844,
                "name": "Block",
                "src": "17811:197:10"
              }
            ],
            "id": 5845,
            "name": "FunctionDefinition",
            "src": "17554:454:10"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "externalTokenDecreaseApproval",
              "payable": false,
              "scope": 5885,
              "stateMutability": "nonpayable",
              "superFunction": 4363,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_externalToken",
                      "scope": 5884,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract StandardToken",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "StandardToken",
                          "referencedDeclaration": 10889,
                          "type": "contract StandardToken"
                        },
                        "id": 5846,
                        "name": "UserDefinedTypeName",
                        "src": "18474:13:10"
                      }
                    ],
                    "id": 5847,
                    "name": "VariableDeclaration",
                    "src": "18474:28:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_spender",
                      "scope": 5884,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5848,
                        "name": "ElementaryTypeName",
                        "src": "18504:7:10"
                      }
                    ],
                    "id": 5849,
                    "name": "VariableDeclaration",
                    "src": "18504:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_subtractedValue",
                      "scope": 5884,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 5850,
                        "name": "ElementaryTypeName",
                        "src": "18522:4:10"
                      }
                    ],
                    "id": 5851,
                    "name": "VariableDeclaration",
                    "src": "18522:21:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 5884,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 5852,
                        "name": "ElementaryTypeName",
                        "src": "18544:7:10"
                      }
                    ],
                    "id": 5853,
                    "name": "VariableDeclaration",
                    "src": "18544:15:10"
                  }
                ],
                "id": 5854,
                "name": "ParameterList",
                "src": "18473:87:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5884,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 5862,
                        "name": "ElementaryTypeName",
                        "src": "18687:4:10"
                      }
                    ],
                    "id": 5863,
                    "name": "VariableDeclaration",
                    "src": "18687:4:10"
                  }
                ],
                "id": 5864,
                "name": "ParameterList",
                "src": "18686:6:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4840,
                      "type": "modifier (address)",
                      "value": "onlyRegisteredScheme"
                    },
                    "id": 5855,
                    "name": "Identifier",
                    "src": "18576:20:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5853,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5856,
                    "name": "Identifier",
                    "src": "18597:7:10"
                  }
                ],
                "id": 5857,
                "name": "ModifierInvocation",
                "src": "18576:29:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 4999,
                      "type": "modifier (bytes32,address)",
                      "value": "onlySubjectToConstraint"
                    },
                    "id": 5858,
                    "name": "Identifier",
                    "src": "18610:23:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "65787465726e616c546f6b656e4465637265617365417070726f76616c",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "string",
                      "type": "literal_string \"externalTokenDecreaseApproval\"",
                      "value": "externalTokenDecreaseApproval"
                    },
                    "id": 5859,
                    "name": "Literal",
                    "src": "18634:31:10"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5853,
                      "type": "address",
                      "value": "_avatar"
                    },
                    "id": 5860,
                    "name": "Identifier",
                    "src": "18666:7:10"
                  }
                ],
                "id": 5861,
                "name": "ModifierInvocation",
                "src": "18610:64:10"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10889",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4707,
                              "type": "function (address,contract StandardToken,address,uint256)",
                              "value": "ExternalTokenDecreaseApproval"
                            },
                            "id": 5865,
                            "name": "Identifier",
                            "src": "18707:29:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10901,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 5866,
                                "name": "Identifier",
                                "src": "18737:3:10"
                              }
                            ],
                            "id": 5867,
                            "name": "MemberAccess",
                            "src": "18737:10:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5847,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5868,
                            "name": "Identifier",
                            "src": "18748:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5849,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 5869,
                            "name": "Identifier",
                            "src": "18763:8:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5851,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 5870,
                            "name": "Identifier",
                            "src": "18772:16:10"
                          }
                        ],
                        "id": 5871,
                        "name": "FunctionCall",
                        "src": "18707:82:10"
                      }
                    ],
                    "id": 5872,
                    "name": "ExpressionStatement",
                    "src": "18707:82:10"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5864
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_StandardToken_$10889",
                                  "typeString": "contract StandardToken"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "externalTokenDecreaseApproval",
                              "referencedDeclaration": 3064,
                              "type": "function (contract StandardToken,address,uint256) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract Avatar"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "contract Avatar",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3065,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 5873,
                                        "name": "Identifier",
                                        "src": "18807:6:10"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5853,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 5874,
                                        "name": "Identifier",
                                        "src": "18814:7:10"
                                      }
                                    ],
                                    "id": 5875,
                                    "name": "FunctionCall",
                                    "src": "18807:15:10"
                                  }
                                ],
                                "id": 5876,
                                "name": "TupleExpression",
                                "src": "18806:17:10"
                              }
                            ],
                            "id": 5877,
                            "name": "MemberAccess",
                            "src": "18806:47:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5847,
                              "type": "contract StandardToken",
                              "value": "_externalToken"
                            },
                            "id": 5878,
                            "name": "Identifier",
                            "src": "18854:14:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5849,
                              "type": "address",
                              "value": "_spender"
                            },
                            "id": 5879,
                            "name": "Identifier",
                            "src": "18870:8:10"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5851,
                              "type": "uint256",
                              "value": "_subtractedValue"
                            },
                            "id": 5880,
                            "name": "Identifier",
                            "src": "18880:16:10"
                          }
                        ],
                        "id": 5881,
                        "name": "FunctionCall",
                        "src": "18806:91:10"
                      }
                    ],
                    "id": 5882,
                    "name": "Return",
                    "src": "18799:98:10"
                  }
                ],
                "id": 5883,
                "name": "Block",
                "src": "18697:207:10"
              }
            ],
            "id": 5884,
            "name": "FunctionDefinition",
            "src": "18435:469:10"
          }
        ],
        "id": 5885,
        "name": "ContractDefinition",
        "src": "504:18402:10"
      }
    ],
    "id": 5886,
    "name": "SourceUnit",
    "src": "0:18907:10"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {
    "1516296965265": {
      "events": {},
      "links": {},
      "address": "0x2ccb8b4ce1af7fe1e77f32d7c8abe7c182da4cfe"
    }
  },
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-01-18T17:37:09.528Z"
}