{
  "contractName": "PandoColony",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "hasInitialized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "APM_NODE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "repositoriesLength",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getEVMScriptExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getRecoveryVault",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ens",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "ens",
          "type": "address"
        },
        {
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "latestVersionAppBase",
      "outputs": [
        {
          "name": "base",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CREATE_REPOSITORY_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "repositories",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "OPEN_NODE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        }
      ],
      "name": "allowRecoverability",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "appId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitializationBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "transferToVault",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_role",
          "type": "bytes32"
        },
        {
          "name": "_params",
          "type": "uint256[]"
        }
      ],
      "name": "canPerform",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getEVMScriptRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "devchain",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ETH_NODE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPetrified",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "repository",
          "type": "address"
        }
      ],
      "name": "CreateRepository",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "executor",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "script",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "input",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "returnData",
          "type": "bytes"
        }
      ],
      "name": "ScriptResult",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_ens",
          "type": "address"
        },
        {
          "name": "_devchain",
          "type": "bool"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_name",
          "type": "string"
        },
        {
          "name": "_description",
          "type": "string"
        }
      ],
      "name": "createRepository",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006002556200002262000028640100000000026401000000009004565b6200030e565b60006200004362000163640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a4544000000000000000081525090151562000126576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620000ea578082015181840152602081019050620000cd565b50505050905090810190601f168015620001185780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50620001617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620001b0640100000000026401000000009004565b565b6000620001ab7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916620002fc6401000000000262001c0c176401000000009004565b905090565b6000620001cb62000163640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515620002ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200027257808201518184015260208101905062000255565b50505050905090810190601f168015620002a05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50620002f9817febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166200030764010000000002620027f0179091906401000000009004565b50565b600081549050919050565b8082555050565b612b4d806200031e6000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac01461012d578063097207781461015c57806309809a021461018f5780632914b9bd146101ba57806332f0a3b5146102635780633f15457f146102ba578063400ada75146103115780634659930414610360578063745df481146103f1578063766527091461042457806379ae05e1146104915780637e7db6e1146104c457806380afdea81461051f5780638b3dd749146105525780639d4941d81461057d578063a1658fad146105c0578063a479e5081461066c578063c2692760146106c3578063ca217ad314610716578063cc473be314610745578063d4aae0c414610778578063de4796ed146107cf575b600080fd5b34801561013957600080fd5b506101426107fe565b604051808215151515815260200191505060405180910390f35b34801561016857600080fd5b50610171610829565b60405180826000191660001916815260200191505060405180910390f35b34801561019b57600080fd5b506101a46108f5565b6040518082815260200191505060405180910390f35b3480156101c657600080fd5b50610221600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506108fb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561026f57600080fd5b50610278610a1a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102c657600080fd5b506102cf610ac7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031d57600080fd5b5061035e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610aec565b005b34801561036c57600080fd5b506103af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050610c3c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103fd57600080fd5b50610406610ebb565b60405180826000191660001916815260200191505060405180910390f35b34801561043057600080fd5b5061044f60048036038101908080359060200190929190505050610ef4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049d57600080fd5b506104a6610f27565b60405180826000191660001916815260200191505060405180910390f35b3480156104d057600080fd5b50610505600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611055565b604051808215151515815260200191505060405180910390f35b34801561052b57600080fd5b50610534611060565b60405180826000191660001916815260200191505060405180910390f35b34801561055e57600080fd5b50610567611097565b6040518082815260200191505060405180910390f35b34801561058957600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ce565b005b3480156105cc57600080fd5b50610652600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611500565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b50610681611707565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106cf57600080fd5b50610714600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611822565b005b34801561072257600080fd5b5061072b6119e7565b604051808215151515815260200191505060405180910390f35b34801561075157600080fd5b5061075a6119fa565b60405180826000191660001916815260200191505060405180910390f35b34801561078457600080fd5b5061078d611a64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107db57600080fd5b506107e4611a9b565b604051808215151515815260200191505060405180910390f35b600080610809611097565b905060008114158015610823575080610820611acc565b10155b91505090565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60025481565b6000610905611707565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561098c578082015181840152602081019050610971565b50505050905090810190601f1680156109b95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156109d857600080fd5b505af11580156109ec573d6000803e3d6000fd5b505050506040513d6020811015610a0257600080fd5b81019080805190602001909291905050509050919050565b6000610a24611a64565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a8757600080fd5b505af1158015610a9b573d6000803e3d6000fd5b505050506040513d6020811015610ab157600080fd5b8101908080519060200190929190505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610af6611097565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b9a578082015181840152602081019050610b7f565b50505050905090810190601f168015610bc75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610bde611ad4565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060146101000a81548160ff0219169083151502179055505050565b6000808373ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610cb657600080fd5b505af1158015610cca573d6000803e3d6000fd5b505050506040513d6020811015610ce057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610d6757600080fd5b505af1158015610d7b573d6000803e3d6000fd5b505050506040513d6020811015610d9157600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663c36af4606040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610e0857600080fd5b505af1158015610e1c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060a0811015610e4657600080fd5b81019080919082606001805190602001909291908051640100000000811115610e6e57600080fd5b82810190506020810184811115610e8457600080fd5b8151856001820283011164010000000082111715610ea157600080fd5b505092919050505090915050809250508191505092915050565b60405180807f4352454154455f5245504f5349544f52595f524f4c45000000000000000000008152506016019050604051809103902081565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f6f70656e0000000000000000000000000000000000000000000000000000000081525060040190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b600060019050919050565b60006110927fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b60010260001916611c01565b905090565b60006110c97febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916611c0c565b905090565b6000806110da83611055565b6040805190810160405280601281526020017f5245434f5645525f444953414c4c4f57454400000000000000000000000000008152509015156111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561117d578082015181840152602081019050611162565b50505050905090810190601f1680156111aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506111c1610a1a565b91506111cc82611c17565b6040805190810160405280601a81526020017f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000008152509015156112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561126f578082015181840152602081019050611254565b50505050905090810190601f16801561129c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611343578173ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561133d573d6000803e3d6000fd5b506114fb565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156113de57600080fd5b505af11580156113f2573d6000803e3d6000fd5b505050506040513d602081101561140857600080fd5b810190808051906020019092919050505090508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156114be57600080fd5b505af11580156114d2573d6000803e3d6000fd5b505050506040513d60208110156114e857600080fd5b8101908080519060200190929190505050505b505050565b6000806060600061150f6107fe565b151561151e57600093506116fd565b611526611a64565b9250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561156657600093506116fd565b602085510290508491508082528273ffffffffffffffffffffffffffffffffffffffff1663fdef9106883089866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611670578082015181840152602081019050611655565b50505050905090810190601f16801561169d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156116bf57600080fd5b505af11580156116d3573d6000803e3d6000fd5b505050506040513d60208110156116e957600080fd5b810190808051906020019092919050505093505b5050509392505050565b600080611712611a64565b73ffffffffffffffffffffffffffffffffffffffff1663be00bbd87fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb6001027fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808360001916600019168152602001826000191660001916815260200192505050602060405180830381600087803b1580156117de57600080fd5b505af11580156117f2573d6000803e3d6000fd5b505050506040513d602081101561180857600080fd5b810190808051906020019092919050505090508091505090565b60405180807f4352454154455f5245504f5349544f52595f524f4c4500000000000000000000815250601601905060405180910390206118933382600060405190808252806020026020018201604052801561188d5781602001602082028038833980820191505090505b50611500565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515611971576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561193657808201518184015260208101905061191b565b50505050905090810190601f1680156119635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506119e085858080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505084848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611c69565b5050505050565b600060149054906101000a900460ff1681565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b6000611a967f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b600102600019166127e5565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ac6611097565b14905090565b600043905090565b6000611ade611097565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515611bbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b82578082015181840152602081019050611b67565b50505050905090810190601f168015611baf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50611bff611bc9611acc565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166127f090919063ffffffff16565b565b600081549050919050565b600081549050919050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c585760009150611c63565b823b90506000811191505b50919050565b600080600080611c77611a64565b93508373ffffffffffffffffffffffffffffffffffffffff1663de2873596040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cdd57600080fd5b505af1158015611cf1573d6000803e3d6000fd5b505050506040513d6020811015611d0757600080fd5b81019080805190602001909291905050509250611d696040805190810160405280601081526020017f70616e646f2d7265706f7369746f727900000000000000000000000000000000815250600060149054906101000a900460ff16156127f7565b91508373ffffffffffffffffffffffffffffffffffffffff166380cd5ac383611db36000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686610c3c565b6040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015611e4057600080fd5b505af1158015611e54573d6000803e3d6000fd5b505050506040513d6020811015611e6a57600080fd5b810190808051906020019092919050505090506001600254016002819055508060016000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16634cd88b7687876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611f6a578082015181840152602081019050611f4f565b50505050905090810190601f168015611f975780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611fd0578082015181840152602081019050611fb5565b50505050905090810190601f168015611ffd5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561201e57600080fd5b505af1158015612032573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663be03847833838473ffffffffffffffffffffffffffffffffffffffff1663b2d147f86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156120b857600080fd5b505af11580156120cc573d6000803e3d6000fd5b505050506040513d60208110156120e257600080fd5b8101908080519060200190929190505050336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b1580156121e757600080fd5b505af11580156121fb573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663be0384787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838473ffffffffffffffffffffffffffffffffffffffff16636dc7dec66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a157600080fd5b505af11580156122b5573d6000803e3d6000fd5b505050506040513d60208110156122cb57600080fd5b8101908080519060200190929190505050336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663be03847833838473ffffffffffffffffffffffffffffffffffffffff1663040c14116040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561246a57600080fd5b505af115801561247e573d6000803e3d6000fd5b505050506040513d602081101561249457600080fd5b8101908080519060200190929190505050336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b15801561259957600080fd5b505af11580156125ad573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663be03847833838473ffffffffffffffffffffffffffffffffffffffff16632902edef6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561263357600080fd5b505af1158015612647573d6000803e3d6000fd5b505050506040513d602081101561265d57600080fd5b8101908080519060200190929190505050336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b15801561276257600080fd5b505af1158015612776573d6000803e3d6000fd5b505050507f939e6e2233ce9d170fb66f7a66110f2e31de231003dbd61f8549748b8f7e3dff81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050505050565b600081549050919050565b8082555050565b600081156129c057600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f6f70656e00000000000000000000000000000000000000000000000000000000815250600401905060405180910390206040518083600019166000191681526020018260001916600019168152602001925050506040518091039020836040518082805190602001908083835b602083101515612960578051825260208201915060208101905060208303925061293b565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405180836000191660001916815260200182600019166000191681526020019250505060405180910390209050612b1b565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d000000000000000000000000000000000000000000000000815250600801905060405180910390206040518083600019166000191681526020018260001916600019168152602001925050506040518091039020836040518082805190602001908083835b602083101515612abf5780518252602082019150602081019050602083039250612a9a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902090505b929150505600a165627a7a72305820a95445470d400446f0fea8c483e6c5f38fd8d1a3b6218b8b6bb177c92c0597050029",
  "deployedBytecode": "0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac01461012d578063097207781461015c57806309809a021461018f5780632914b9bd146101ba57806332f0a3b5146102635780633f15457f146102ba578063400ada75146103115780634659930414610360578063745df481146103f1578063766527091461042457806379ae05e1146104915780637e7db6e1146104c457806380afdea81461051f5780638b3dd749146105525780639d4941d81461057d578063a1658fad146105c0578063a479e5081461066c578063c2692760146106c3578063ca217ad314610716578063cc473be314610745578063d4aae0c414610778578063de4796ed146107cf575b600080fd5b34801561013957600080fd5b506101426107fe565b604051808215151515815260200191505060405180910390f35b34801561016857600080fd5b50610171610829565b60405180826000191660001916815260200191505060405180910390f35b34801561019b57600080fd5b506101a46108f5565b6040518082815260200191505060405180910390f35b3480156101c657600080fd5b50610221600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506108fb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561026f57600080fd5b50610278610a1a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102c657600080fd5b506102cf610ac7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031d57600080fd5b5061035e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610aec565b005b34801561036c57600080fd5b506103af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050610c3c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103fd57600080fd5b50610406610ebb565b60405180826000191660001916815260200191505060405180910390f35b34801561043057600080fd5b5061044f60048036038101908080359060200190929190505050610ef4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049d57600080fd5b506104a6610f27565b60405180826000191660001916815260200191505060405180910390f35b3480156104d057600080fd5b50610505600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611055565b604051808215151515815260200191505060405180910390f35b34801561052b57600080fd5b50610534611060565b60405180826000191660001916815260200191505060405180910390f35b34801561055e57600080fd5b50610567611097565b6040518082815260200191505060405180910390f35b34801561058957600080fd5b506105be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ce565b005b3480156105cc57600080fd5b50610652600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611500565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b50610681611707565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106cf57600080fd5b50610714600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050611822565b005b34801561072257600080fd5b5061072b6119e7565b604051808215151515815260200191505060405180910390f35b34801561075157600080fd5b5061075a6119fa565b60405180826000191660001916815260200191505060405180910390f35b34801561078457600080fd5b5061078d611a64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107db57600080fd5b506107e4611a9b565b604051808215151515815260200191505060405180910390f35b600080610809611097565b905060008114158015610823575080610820611acc565b10155b91505090565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60025481565b6000610905611707565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561098c578082015181840152602081019050610971565b50505050905090810190601f1680156109b95780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156109d857600080fd5b505af11580156109ec573d6000803e3d6000fd5b505050506040513d6020811015610a0257600080fd5b81019080805190602001909291905050509050919050565b6000610a24611a64565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a8757600080fd5b505af1158015610a9b573d6000803e3d6000fd5b505050506040513d6020811015610ab157600080fd5b8101908080519060200190929190505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610af6611097565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b9a578082015181840152602081019050610b7f565b50505050905090810190601f168015610bc75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610bde611ad4565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060146101000a81548160ff0219169083151502179055505050565b6000808373ffffffffffffffffffffffffffffffffffffffff16630178b8bf846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610cb657600080fd5b505af1158015610cca573d6000803e3d6000fd5b505050506040513d6020811015610ce057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610d6757600080fd5b505af1158015610d7b573d6000803e3d6000fd5b505050506040513d6020811015610d9157600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663c36af4606040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015610e0857600080fd5b505af1158015610e1c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060a0811015610e4657600080fd5b81019080919082606001805190602001909291908051640100000000811115610e6e57600080fd5b82810190506020810184811115610e8457600080fd5b8151856001820283011164010000000082111715610ea157600080fd5b505092919050505090915050809250508191505092915050565b60405180807f4352454154455f5245504f5349544f52595f524f4c45000000000000000000008152506016019050604051809103902081565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f6f70656e0000000000000000000000000000000000000000000000000000000081525060040190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b600060019050919050565b60006110927fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b60010260001916611c01565b905090565b60006110c97febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916611c0c565b905090565b6000806110da83611055565b6040805190810160405280601281526020017f5245434f5645525f444953414c4c4f57454400000000000000000000000000008152509015156111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561117d578082015181840152602081019050611162565b50505050905090810190601f1680156111aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506111c1610a1a565b91506111cc82611c17565b6040805190810160405280601a81526020017f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000008152509015156112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561126f578082015181840152602081019050611254565b50505050905090810190601f16801561129c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611343578173ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561133d573d6000803e3d6000fd5b506114fb565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156113de57600080fd5b505af11580156113f2573d6000803e3d6000fd5b505050506040513d602081101561140857600080fd5b810190808051906020019092919050505090508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156114be57600080fd5b505af11580156114d2573d6000803e3d6000fd5b505050506040513d60208110156114e857600080fd5b8101908080519060200190929190505050505b505050565b6000806060600061150f6107fe565b151561151e57600093506116fd565b611526611a64565b9250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561156657600093506116fd565b602085510290508491508082528273ffffffffffffffffffffffffffffffffffffffff1663fdef9106883089866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611670578082015181840152602081019050611655565b50505050905090810190601f16801561169d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156116bf57600080fd5b505af11580156116d3573d6000803e3d6000fd5b505050506040513d60208110156116e957600080fd5b810190808051906020019092919050505093505b5050509392505050565b600080611712611a64565b73ffffffffffffffffffffffffffffffffffffffff1663be00bbd87fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb6001027fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808360001916600019168152602001826000191660001916815260200192505050602060405180830381600087803b1580156117de57600080fd5b505af11580156117f2573d6000803e3d6000fd5b505050506040513d602081101561180857600080fd5b810190808051906020019092919050505090508091505090565b60405180807f4352454154455f5245504f5349544f52595f524f4c4500000000000000000000815250601601905060405180910390206118933382600060405190808252806020026020018201604052801561188d5781602001602082028038833980820191505090505b50611500565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515611971576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561193657808201518184015260208101905061191b565b50505050905090810190601f1680156119635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506119e085858080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505084848080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050611c69565b5050505050565b600060149054906101000a900460ff1681565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b6000611a967f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b600102600019166127e5565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611ac6611097565b14905090565b600043905090565b6000611ade611097565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515611bbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b82578082015181840152602081019050611b67565b50505050905090810190601f168015611baf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50611bff611bc9611acc565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166127f090919063ffffffff16565b565b600081549050919050565b600081549050919050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c585760009150611c63565b823b90506000811191505b50919050565b600080600080611c77611a64565b93508373ffffffffffffffffffffffffffffffffffffffff1663de2873596040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611cdd57600080fd5b505af1158015611cf1573d6000803e3d6000fd5b505050506040513d6020811015611d0757600080fd5b81019080805190602001909291905050509250611d696040805190810160405280601081526020017f70616e646f2d7265706f7369746f727900000000000000000000000000000000815250600060149054906101000a900460ff16156127f7565b91508373ffffffffffffffffffffffffffffffffffffffff166380cd5ac383611db36000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686610c3c565b6040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015611e4057600080fd5b505af1158015611e54573d6000803e3d6000fd5b505050506040513d6020811015611e6a57600080fd5b810190808051906020019092919050505090506001600254016002819055508060016000600254815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16634cd88b7687876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611f6a578082015181840152602081019050611f4f565b50505050905090810190601f168015611f975780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611fd0578082015181840152602081019050611fb5565b50505050905090810190601f168015611ffd5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561201e57600080fd5b505af1158015612032573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663be03847833838473ffffffffffffffffffffffffffffffffffffffff1663b2d147f86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156120b857600080fd5b505af11580156120cc573d6000803e3d6000fd5b505050506040513d60208110156120e257600080fd5b8101908080519060200190929190505050336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b1580156121e757600080fd5b505af11580156121fb573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663be0384787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff838473ffffffffffffffffffffffffffffffffffffffff16636dc7dec66040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156122a157600080fd5b505af11580156122b5573d6000803e3d6000fd5b505050506040513d60208110156122cb57600080fd5b8101908080519060200190929190505050336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663be03847833838473ffffffffffffffffffffffffffffffffffffffff1663040c14116040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561246a57600080fd5b505af115801561247e573d6000803e3d6000fd5b505050506040513d602081101561249457600080fd5b8101908080519060200190929190505050336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b15801561259957600080fd5b505af11580156125ad573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663be03847833838473ffffffffffffffffffffffffffffffffffffffff16632902edef6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561263357600080fd5b505af1158015612647573d6000803e3d6000fd5b505050506040513d602081101561265d57600080fd5b8101908080519060200190929190505050336040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b15801561276257600080fd5b505af1158015612776573d6000803e3d6000fd5b505050507f939e6e2233ce9d170fb66f7a66110f2e31de231003dbd61f8549748b8f7e3dff81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050505050565b600081549050919050565b8082555050565b600081156129c057600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d00000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f6f70656e00000000000000000000000000000000000000000000000000000000815250600401905060405180910390206040518083600019166000191681526020018260001916600019168152602001925050506040518091039020836040518082805190602001908083835b602083101515612960578051825260208201915060208101905060208303925061293b565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405180836000191660001916815260200182600019166000191681526020019250505060405180910390209050612b1b565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f617261676f6e706d000000000000000000000000000000000000000000000000815250600801905060405180910390206040518083600019166000191681526020018260001916600019168152602001925050506040518091039020836040518082805190602001908083835b602083101515612abf5780518252602082019150602081019050602083039250612a9a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902090505b929150505600a165627a7a72305820a95445470d400446f0fea8c483e6c5f38fd8d1a3b6218b8b6bb177c92c0597050029",
  "sourceMap": "259:2044:55:-;;;545:1;509:37;;344:9:19;:7;;;:9;;;:::i;:::-;259:2044:55;;590:84:28;651:1:26;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;637:30:28;277:2;637:13;;;:30;;;:::i;:::-;590:84::o;889:137:26:-;944:7;970:49;353:66;970:29;;:47;;;;;;;;:49;;;:::i;:::-;963:56;;889:137;:::o;1759:141::-;651:1;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1832:61;1880:12;353:66;1832:29;;:47;;;;;;;;;:61;;;;;:::i;:::-;1759:141;:::o;519:134:31:-;587:12;636:8;630:15;622:23;;620:27;;;:::o;1028:119::-;1134:4;1124:8;1117:22;1115:26;;:::o;259:2044:55:-;;;;;;;",
  "deployedSourceMap": "259:2044:55:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:208:26;;;;;;;;;;;;;;;;;;;;;;;;;;;284:77:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;284:77:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;509:37:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;509:37:55;;;;;;;;;;;;;;;;;;;;;;;733:179:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;733:179:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:229:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2466:229:18;;;;;;;;;;;;;;;;;;;;;;;;;;;402:14:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;402:14:55;;;;;;;;;;;;;;;;;;;;;;;;;;;870:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;870:144:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:232:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;740:232:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;311:84:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;311:84:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;448:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;448:55:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;367:74:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;367:74:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1333:99:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1333:99:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;796:106:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;796:106:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:137:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:137:26;;;;;;;;;;;;;;;;;;;;;;;687:446:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;687:446:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;1524:826:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1524:826:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:231:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:231:34;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:154:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1175:154:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;422:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;422:20:55;;;;;;;;;;;;;;;;;;;;;;;;;;;204:74:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;204:74:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;674:116:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;674:116:17;;;;;;;;;;;;;;;;;;;;;;;;;;;287:117:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:117:28;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:26;1183:4;1199:27;1229:24;:22;:24::i;:::-;1199:54;;1293:1;1270:19;:24;;:67;;;;;1318:19;1298:16;:14;:16::i;:::-;:39;;1270:67;1263:74;;1136:208;;:::o;284:77:56:-;257:1;249:10;;261:16;;;;;;;;;;;;;;;;;;;239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:21;;;;;;;;;;;;;;;;;;;319:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;284:77;:::o;509:37:55:-;;;;:::o;733:179:34:-;799:18;855:22;:20;:22::i;:::-;:40;;;896:7;855:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;855:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;855:49:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;855:49:34;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;855:49:34;;;;;;;;;;;;;;;;829:76;;733:179;;;:::o;2466:229:18:-;2515:7;2621:8;:6;:8::i;:::-;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2621:27:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2621:27:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2621:27:18;;;;;;;;;;;;;;;;2614:34;;2466:229;:::o;402:14:55:-;;;;;;;;;;;;;:::o;870:144::-;651:1:26;623:24;:22;:24::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;944:13:55;:11;:13::i;:::-;973:4;967:3;;:10;;;;;;;;;;;;;;;;;;998:9;987:8;;:20;;;;;;;;;;;;;;;;;;870:144;;:::o;740:232:56:-;815:12;839:9;871:3;:12;;;884:5;871:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;871:19:56;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;871:19:56;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;871:19:56;;;;;;;;;;;;;;;;856:40;;;897:5;856:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;856:47:56;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;856:47:56;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;856:47:56;;;;;;;;;;;;;;;;839:65;;927:4;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;927:16:56;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;927:16:56;;;;;;39::-1;36:1;17:17;2:54;927:16:56;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;927:16:56;;;;;;;;;;;;;;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;338:9;333:1;319:12;315:20;297:16;293:43;290:58;268:11;254:12;251:29;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;927:16:56;;;;;;914:29;;;;;;;;961:4;954:11;;740:232;;;;;:::o;311:84:55:-;360:35;;;;;;;;;;;;;;;;;;;311:84;:::o;448:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;367:74:56:-;257:1;249:10;;261:16;;;;;;;;;;;;;;;;;;;239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:21;;;;;;;;;;;;;;;;;;;319:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;423:17;;;;;;;;;;;;;;;;;;;403:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;367:74;:::o;1333:99:32:-;1398:4;1421;1414:11;;1333:99;;;:::o;796:106:17:-;834:7;860:35;601:66;860:15;;:33;;;;:35::i;:::-;853:42;;796:106;:::o;889:137:26:-;944:7;970:49;353:66;970:29;;:47;;;;:49::i;:::-;963:56;;889:137;:::o;687:446:32:-;811:13;1019:14;755:27;775:6;755:19;:27::i;:::-;784:16;;;;;;;;;;;;;;;;;;747:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;747:54:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:18;:16;:18::i;:::-;811:34;;863:17;874:5;863:10;:17::i;:::-;882:24;;;;;;;;;;;;;;;;;;855:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;855:52:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;269:1:23;922:13:32;;:6;:13;;;918:209;;;951:5;:14;;:37;974:4;966:21;;;951:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;951:37:32;918:209;;;1042:6;1036:23;;;1060:4;1036:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1036:29:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1036:29:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1036:29:32;;;;;;;;;;;;;;;;1019:46;;1085:6;1079:22;;;1102:5;1109:6;1079:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1079:37:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1079:37:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1079:37:32;;;;;;;;;;;;;;;;;918:209;687:446;;;:::o;1524:826:18:-;1616:4;1702:20;2106:16;2132:18;1637:16;:14;:16::i;:::-;1636:17;1632:60;;;1676:5;1669:12;;;;1632:60;1725:8;:6;:8::i;:::-;1702:31;;1780:1;1747:35;;1755:12;1747:35;;;1743:78;;;1805:5;1798:12;;;;1743:78;2170:2;2153:7;:14;:19;2132:40;;2212:7;2205:14;;2244:10;2239:3;2232:23;2281:12;:26;;;2308:7;2325:4;2332:5;2339:3;2281:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2281:62:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2281:62:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2281:62:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2281:62:18;;;;;;;;;;;;;;;;2274:69;;1524:826;;;;;;;;;:::o;918:231:34:-;971:18;1001:20;1024:8;:6;:8::i;:::-;:15;;;1368:66:45;1040:25:34;;330:66:36;1067:25:34;;1024:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1024:69:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1024:69:34;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1024:69:34;;;;;;;;;;;;;;;;1001:92;;1129:12;1103:39;;918:231;;:::o;1175:154:55:-;360:35;;;;;;;;;;;;;;;;;;;873:47:18;884:10;896:5;917:1;903:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;903:16:18;;;;873:10;:47::i;:::-;922:17;;;;;;;;;;;;;;;;;;865:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;865:75:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1284:38:55;1302:5;;1284:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1309:12;;1284:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;:38::i;:::-;1175:154;;;;;:::o;422:20::-;;;;;;;;;;;;;:::o;204:74:56:-;257:1;249:10;;261:16;;;;;;;;;;;;;;;;;;;239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;204:74;:::o;674:116:17:-;713:7;747:35;485:66;747:15;;:33;;;;:35::i;:::-;732:51;;674:116;:::o;287:117:28:-;331:4;277:2;354:24;:22;:24::i;:::-;:43;347:50;;287:117;:::o;347:94:29:-;396:7;422:12;415:19;;347:94;:::o;1455:123:26:-;651:1;623:24;:22;:24::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1506;1554:16;:14;:16::i;:::-;353:66;1506:29;;:47;;;;;:65;;;;:::i;:::-;1455:123::o;379:134:31:-;447:12;496:8;490:15;482:23;;480:27;;;:::o;519:134::-;587:12;636:8;630:15;622:23;;620:27;;;:::o;426:244:27:-;486:4;576:12;525:1;506:21;;:7;:21;;;502:64;;;550:5;543:12;;;;502:64;629:7;617:20;609:28;;662:1;655:4;:8;648:15;;426:244;;;;;:::o;1373:928:55:-;1454:10;1493:7;1527:12;1595:26;1474:8;:6;:8::i;:::-;1454:29;;1507:3;:7;;;:9;;;;;;;;;;;;;;;;;;;;;;;8::-1;5:2;;;30:1;27;20:12;5:2;1507:9:55;;;;8::-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1507:9:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1507:9:55;;;;;;;;;;;;;;;;1493:24;;1542:42;;;;;;;;;;;;;;;;;;;1575:8;;;;;;;;;;;1574:9;1542:11;:42::i;:::-;1527:57;;1640:3;:18;;;1659:4;1665:31;1686:3;;;;;;;;;;;1691:4;1665:20;:31::i;:::-;1640:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1640:57:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1640:57:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1640:57:55;;;;;;;;;;;;;;;;1595:103;;1750:1;1729:18;;:22;1708:18;:43;;;;1796:10;1761:12;:32;1774:18;;1761:32;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;1817:10;:21;;;1839:5;1846:12;1817:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1817:42:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1817:42:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1817:42:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1817:42:55;;;;1869:3;:20;;;1890:10;1902;1914;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1914:22:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1914:22:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1914:22:55;;;;;;;;;;;;;;;;1938:10;1869:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1869:80:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1869:80:55;;;;1959:3;:20;;;1988:2;1993:10;2005;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2005:25:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2005:25:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2005:25:55;;;;;;;;;;;;;;;;2032:10;1959:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1959:84:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1959:84:55;;;;2053:3;:20;;;2074:10;2086;2098;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2098:25:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2098:25:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2098:25:55;;;;;;;;;;;;;;;;2125:10;2053:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2053:83:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2053:83:55;;;;2146:3;:20;;;2167:10;2179;2191;:35;;;:37;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2191:37:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2191:37:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2191:37:55;;;;;;;;;;;;;;;;2230:10;2146:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2146:95:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2146:95:55;;;;2257:37;2282:10;2257:37;;;;;;;;;;;;;;;;;;;;;;1373:928;;;;;;:::o;239:134:31:-;307:12;356:8;350:15;342:23;;340:27;;;:::o;1028:119::-;1134:4;1124:8;1117:22;1115:26;;:::o;448:246:56:-;516:7;539:4;535:153;;;257:1;249:10;;261:16;;;;;;;;;;;;;;;;;;;239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:21;;;;;;;;;;;;;;;;;;;319:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;423:17;;;;;;;;;;;;;;;;;;;403:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;597:4;587:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;587:15:56;;;;;;;;;;;;;;;;566:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;559:44;;;;535:153;257:1;249:10;;261:16;;;;;;;;;;;;;;;;;;;239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:21;;;;;;;;;;;;;;;;;;;319:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;671:4;661:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;661:15:56;;;;;;;;;;;;;;;;641:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:43;;448:246;;;;;:::o",
  "source": "pragma solidity ^0.4.24;\n\nimport \"@aragon/os/contracts/kernel/Kernel.sol\";\nimport \"@aragon/os/contracts/acl/ACL.sol\";\nimport \"@aragon/os/contracts/apps/AragonApp.sol\";\nimport \"@pando/repository/contracts/PandoRepository.sol\";\nimport \"./apm/APMFetcher.sol\";\n\n\ncontract PandoColony is APMFetcher, AragonApp {\n    bytes32 constant public CREATE_REPOSITORY_ROLE = keccak256(\"CREATE_REPOSITORY_ROLE\");\n\n    ENS public ens;\n    bool public devchain;\n    mapping(uint256 => PandoRepository) public repositories;\n    uint256 public repositoriesLength = 0;\n\n    event CreateRepository(address repository);\n\n    /***** external functions *****/\n\n    /**\n    * @notice Initialize Colony app with `_ens` as a ENS registry\n    * @param _ens Address of the ENS registry to fetch pando apps address from\n    * @param _devchain Whether the app is deployed on devchain or not\n    */\n    function initialize(ENS _ens, bool _devchain) external onlyInit {\n        initialized();\n        ens = _ens;\n        devchain = _devchain;\n    }\n\n    /**\n    * @notice Create repository '`_name`'\n    * @param _name Name of the repository\n    * @param _description Description of the repository\n    */\n    function createRepository(string _name, string _description) external auth(CREATE_REPOSITORY_ROLE) {\n        _createRepository(_name, _description);\n    }\n\n    /***** internal functions *****/\n\n    function _createRepository(string _name, string _description) internal {\n        Kernel dao = Kernel(kernel());\n        ACL acl = ACL(dao.acl());\n        bytes32 hash = apmNamehash(\"pando-repository\", !devchain);\n\n        PandoRepository repository = PandoRepository(dao.newAppInstance(hash, latestVersionAppBase(ens, hash)));\n        repositoriesLength = repositoriesLength + 1;\n        repositories[repositoriesLength] = repository;\n\n        repository.initialize(_name, _description);\n        acl.createPermission(msg.sender, repository, repository.PUSH_ROLE(), msg.sender);\n        acl.createPermission(address(-1), repository, repository.OPEN_PR_ROLE(), msg.sender);\n        acl.createPermission(msg.sender, repository, repository.SORT_PR_ROLE(), msg.sender);\n        acl.createPermission(msg.sender, repository, repository.UPDATE_INFORMATIONS_ROLE(), msg.sender);\n\n        emit CreateRepository(address(repository));\n    }\n}\n",
  "sourcePath": "@pando/colony/contracts/PandoColony.sol",
  "ast": {
    "absolutePath": "@pando/colony/contracts/PandoColony.sol",
    "exportedSymbols": {
      "PandoColony": [
        12133
      ]
    },
    "id": 12134,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 11943,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:55"
      },
      {
        "absolutePath": "@aragon/os/contracts/kernel/Kernel.sol",
        "file": "@aragon/os/contracts/kernel/Kernel.sol",
        "id": 11944,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 10748,
        "src": "26:48:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/acl/ACL.sol",
        "file": "@aragon/os/contracts/acl/ACL.sol",
        "id": 11945,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 7167,
        "src": "75:42:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/apps/AragonApp.sol",
        "file": "@aragon/os/contracts/apps/AragonApp.sol",
        "id": 11946,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 8476,
        "src": "118:49:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@pando/repository/contracts/PandoRepository.sol",
        "file": "@pando/repository/contracts/PandoRepository.sol",
        "id": 11947,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 12656,
        "src": "168:57:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@pando/colony/contracts/apm/APMFetcher.sol",
        "file": "./apm/APMFetcher.sol",
        "id": 11948,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 12230,
        "src": "226:30:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 11949,
              "name": "APMFetcher",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 12229,
              "src": "283:10:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_APMFetcher_$12229",
                "typeString": "contract APMFetcher"
              }
            },
            "id": 11950,
            "nodeType": "InheritanceSpecifier",
            "src": "283:10:55"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 11951,
              "name": "AragonApp",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8475,
              "src": "295:9:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AragonApp_$8475",
                "typeString": "contract AragonApp"
              }
            },
            "id": 11952,
            "nodeType": "InheritanceSpecifier",
            "src": "295:9:55"
          }
        ],
        "contractDependencies": [
          7585,
          8347,
          8475,
          8488,
          8621,
          8663,
          8761,
          8789,
          8822,
          8869,
          9066,
          9476,
          9503,
          10769,
          12193,
          12229
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 12133,
        "linearizedBaseContracts": [
          12133,
          8475,
          7585,
          9476,
          10769,
          9503,
          9066,
          8789,
          8621,
          8663,
          8488,
          8822,
          8761,
          8869,
          8347,
          12229,
          12193
        ],
        "name": "PandoColony",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 11957,
            "name": "CREATE_REPOSITORY_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "311:84:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 11953,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "311:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "4352454154455f5245504f5349544f52595f524f4c45",
                  "id": 11955,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "370:24:55",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_95cbb5080e74aaf2c7e513453d8c7ed90c382845b9daffb7e6029bcd73221142",
                    "typeString": "literal_string \"CREATE_REPOSITORY_ROLE\""
                  },
                  "value": "CREATE_REPOSITORY_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_95cbb5080e74aaf2c7e513453d8c7ed90c382845b9daffb7e6029bcd73221142",
                    "typeString": "literal_string \"CREATE_REPOSITORY_ROLE\""
                  }
                ],
                "id": 11954,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "360:9:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 11956,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "360:35:55",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 11959,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "402:14:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$11104",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 11958,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11104,
              "src": "402:3:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$11104",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 11961,
            "name": "devchain",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "422:20:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 11960,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "422:4:55",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 11965,
            "name": "repositories",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "448:55:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_PandoRepository_$12655_$",
              "typeString": "mapping(uint256 => contract PandoRepository)"
            },
            "typeName": {
              "id": 11964,
              "keyType": {
                "id": 11962,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "456:7:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "448:35:55",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_PandoRepository_$12655_$",
                "typeString": "mapping(uint256 => contract PandoRepository)"
              },
              "valueType": {
                "contractScope": null,
                "id": 11963,
                "name": "PandoRepository",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 12655,
                "src": "467:15:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_PandoRepository_$12655",
                  "typeString": "contract PandoRepository"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 11968,
            "name": "repositoriesLength",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "509:37:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 11966,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "509:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 11967,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "545:1:55",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 11972,
            "name": "CreateRepository",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 11971,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11970,
                  "indexed": false,
                  "name": "repository",
                  "nodeType": "VariableDeclaration",
                  "scope": 11972,
                  "src": "576:18:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11969,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "576:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "575:20:55"
            },
            "src": "553:43:55"
          },
          {
            "body": {
              "id": 11992,
              "nodeType": "Block",
              "src": "934:80:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11981,
                      "name": "initialized",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8746,
                      "src": "944:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 11982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "944:13:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11983,
                  "nodeType": "ExpressionStatement",
                  "src": "944:13:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 11986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 11984,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11959,
                      "src": "967:3:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$11104",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 11985,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11974,
                      "src": "973:4:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$11104",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "967:10:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 11987,
                  "nodeType": "ExpressionStatement",
                  "src": "967:10:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 11990,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 11988,
                      "name": "devchain",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11961,
                      "src": "987:8:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 11989,
                      "name": "_devchain",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11976,
                      "src": "998:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "987:20:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11991,
                  "nodeType": "ExpressionStatement",
                  "src": "987:20:55"
                }
              ]
            },
            "documentation": "@notice Initialize Colony app with `_ens` as a ENS registry\n@param _ens Address of the ENS registry to fetch pando apps address from\n@param _devchain Whether the app is deployed on devchain or not",
            "id": 11993,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 11979,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 11978,
                  "name": "onlyInit",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8693,
                  "src": "925:8:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "925:8:55"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11974,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 11993,
                  "src": "890:8:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$11104",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 11973,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 11104,
                    "src": "890:3:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11976,
                  "name": "_devchain",
                  "nodeType": "VariableDeclaration",
                  "scope": 11993,
                  "src": "900:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 11975,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "900:4:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "889:26:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 11980,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "934:0:55"
            },
            "scope": 12133,
            "src": "870:144:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12008,
              "nodeType": "Block",
              "src": "1274:55:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12004,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11995,
                        "src": "1302:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12005,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11997,
                        "src": "1309:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12003,
                      "name": "_createRepository",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12132,
                      "src": "1284:17:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12006,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1284:38:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12007,
                  "nodeType": "ExpressionStatement",
                  "src": "1284:38:55"
                }
              ]
            },
            "documentation": "@notice Create repository '`_name`'\n@param _name Name of the repository\n@param _description Description of the repository",
            "id": 12009,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12000,
                    "name": "CREATE_REPOSITORY_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 11957,
                    "src": "1250:22:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12001,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 11999,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "1245:4:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1245:28:55"
              }
            ],
            "name": "createRepository",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11998,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11995,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12009,
                  "src": "1201:12:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11994,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1201:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11997,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12009,
                  "src": "1215:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11996,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1215:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1200:35:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 12002,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1274:0:55"
            },
            "scope": 12133,
            "src": "1175:154:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12131,
              "nodeType": "Block",
              "src": "1444:857:55",
              "statements": [
                {
                  "assignments": [
                    12017
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12017,
                      "name": "dao",
                      "nodeType": "VariableDeclaration",
                      "scope": 12132,
                      "src": "1454:10:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Kernel_$10747",
                        "typeString": "contract Kernel"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12016,
                        "name": "Kernel",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 10747,
                        "src": "1454:6:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12022,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 12019,
                          "name": "kernel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8310,
                          "src": "1474:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IKernel_$10248_$",
                            "typeString": "function () view returns (contract IKernel)"
                          }
                        },
                        "id": 12020,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1474:8:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IKernel_$10248",
                          "typeString": "contract IKernel"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IKernel_$10248",
                          "typeString": "contract IKernel"
                        }
                      ],
                      "id": 12018,
                      "name": "Kernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10747,
                      "src": "1467:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Kernel_$10747_$",
                        "typeString": "type(contract Kernel)"
                      }
                    },
                    "id": 12021,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1467:16:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Kernel_$10747",
                      "typeString": "contract Kernel"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1454:29:55"
                },
                {
                  "assignments": [
                    12024
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12024,
                      "name": "acl",
                      "nodeType": "VariableDeclaration",
                      "scope": 12132,
                      "src": "1493:7:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ACL_$7166",
                        "typeString": "contract ACL"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12023,
                        "name": "ACL",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7166,
                        "src": "1493:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12030,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12026,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12017,
                            "src": "1507:3:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 12027,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "acl",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10609,
                          "src": "1507:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IACL_$7681_$",
                            "typeString": "function () view external returns (contract IACL)"
                          }
                        },
                        "id": 12028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1507:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      ],
                      "id": 12025,
                      "name": "ACL",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7166,
                      "src": "1503:3:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_ACL_$7166_$",
                        "typeString": "type(contract ACL)"
                      }
                    },
                    "id": 12029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1503:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ACL_$7166",
                      "typeString": "contract ACL"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1493:24:55"
                },
                {
                  "assignments": [
                    12032
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12032,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 12132,
                      "src": "1527:12:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 12031,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1527:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12038,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "70616e646f2d7265706f7369746f7279",
                        "id": 12034,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1554:18:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c48a3004a9e151fcf9e475a681d40453a1ba0625150fcb821fbad82524bfcae5",
                          "typeString": "literal_string \"pando-repository\""
                        },
                        "value": "pando-repository"
                      },
                      {
                        "argumentTypes": null,
                        "id": 12036,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1574:9:55",
                        "subExpression": {
                          "argumentTypes": null,
                          "id": 12035,
                          "name": "devchain",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11961,
                          "src": "1575:8:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_c48a3004a9e151fcf9e475a681d40453a1ba0625150fcb821fbad82524bfcae5",
                          "typeString": "literal_string \"pando-repository\""
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12033,
                      "name": "apmNamehash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12192,
                      "src": "1542:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                        "typeString": "function (string memory,bool) pure returns (bytes32)"
                      }
                    },
                    "id": 12037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1542:42:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1527:57:55"
                },
                {
                  "assignments": [
                    12040
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12040,
                      "name": "repository",
                      "nodeType": "VariableDeclaration",
                      "scope": 12132,
                      "src": "1595:26:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PandoRepository_$12655",
                        "typeString": "contract PandoRepository"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12039,
                        "name": "PandoRepository",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12655,
                        "src": "1595:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12051,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12044,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12032,
                            "src": "1659:4:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 12046,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11959,
                                "src": "1686:3:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$11104",
                                  "typeString": "contract ENS"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 12047,
                                "name": "hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12032,
                                "src": "1691:4:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ENS_$11104",
                                  "typeString": "contract ENS"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 12045,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12228,
                              "src": "1665:20:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_contract$_ENS_$11104_$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (contract ENS,bytes32) view returns (address)"
                              }
                            },
                            "id": 12048,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1665:31:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12042,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12017,
                            "src": "1640:3:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 12043,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "1640:18:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 12049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1640:57:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 12041,
                      "name": "PandoRepository",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12655,
                      "src": "1624:15:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_PandoRepository_$12655_$",
                        "typeString": "type(contract PandoRepository)"
                      }
                    },
                    "id": 12050,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1624:74:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PandoRepository_$12655",
                      "typeString": "contract PandoRepository"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1595:103:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12052,
                      "name": "repositoriesLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11968,
                      "src": "1708:18:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 12055,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 12053,
                        "name": "repositoriesLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11968,
                        "src": "1729:18:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 12054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1750:1:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "1729:22:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1708:43:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 12057,
                  "nodeType": "ExpressionStatement",
                  "src": "1708:43:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 12058,
                        "name": "repositories",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11965,
                        "src": "1761:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_PandoRepository_$12655_$",
                          "typeString": "mapping(uint256 => contract PandoRepository)"
                        }
                      },
                      "id": 12060,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 12059,
                        "name": "repositoriesLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11968,
                        "src": "1774:18:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1761:32:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PandoRepository_$12655",
                        "typeString": "contract PandoRepository"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12061,
                      "name": "repository",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12040,
                      "src": "1796:10:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PandoRepository_$12655",
                        "typeString": "contract PandoRepository"
                      }
                    },
                    "src": "1761:45:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PandoRepository_$12655",
                      "typeString": "contract PandoRepository"
                    }
                  },
                  "id": 12063,
                  "nodeType": "ExpressionStatement",
                  "src": "1761:45:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12067,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12011,
                        "src": "1839:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12068,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12013,
                        "src": "1846:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12064,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "1817:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      "id": 12066,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12341,
                      "src": "1817:21:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory) external"
                      }
                    },
                    "id": 12069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1817:42:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12070,
                  "nodeType": "ExpressionStatement",
                  "src": "1817:42:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12074,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "1890:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1890:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12076,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "1902:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12077,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "1914:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          },
                          "id": 12078,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "PUSH_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12240,
                          "src": "1914:20:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 12079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1914:22:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12080,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "1938:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1938:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12071,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12024,
                        "src": "1869:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 12073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "1869:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 12082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1869:80:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12083,
                  "nodeType": "ExpressionStatement",
                  "src": "1869:80:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12089,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "-",
                            "prefix": true,
                            "src": "1988:2:55",
                            "subExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 12088,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1989:1:55",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_-1_by_1",
                              "typeString": "int_const -1"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_-1_by_1",
                              "typeString": "int_const -1"
                            }
                          ],
                          "id": 12087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1980:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 12090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1980:11:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12091,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "1993:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12092,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "2005:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          },
                          "id": 12093,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "OPEN_PR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12245,
                          "src": "2005:23:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 12094,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2005:25:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12095,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2032:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12096,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2032:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12084,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12024,
                        "src": "1959:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 12086,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "1959:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 12097,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1959:84:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12098,
                  "nodeType": "ExpressionStatement",
                  "src": "1959:84:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12102,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2074:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12103,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2074:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12104,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "2086:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12105,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "2098:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          },
                          "id": 12106,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "SORT_PR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12250,
                          "src": "2098:23:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 12107,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2098:25:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12108,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2125:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12109,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2125:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12099,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12024,
                        "src": "2053:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 12101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "2053:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 12110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2053:83:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12111,
                  "nodeType": "ExpressionStatement",
                  "src": "2053:83:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12115,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2167:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12116,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2167:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12117,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "2179:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12118,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "2191:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          },
                          "id": 12119,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "UPDATE_INFORMATIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12255,
                          "src": "2191:35:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 12120,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2191:37:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12121,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2230:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2230:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12112,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12024,
                        "src": "2146:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 12114,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "2146:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 12123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2146:95:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12124,
                  "nodeType": "ExpressionStatement",
                  "src": "2146:95:55"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12127,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "2282:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          ],
                          "id": 12126,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2274:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 12128,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2274:19:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 12125,
                      "name": "CreateRepository",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11972,
                      "src": "2257:16:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 12129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2257:37:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12130,
                  "nodeType": "EmitStatement",
                  "src": "2252:42:55"
                }
              ]
            },
            "documentation": "*** internal functions ****",
            "id": 12132,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_createRepository",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12014,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12011,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12132,
                  "src": "1400:12:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12010,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1400:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12013,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12132,
                  "src": "1414:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12012,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1414:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1399:35:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 12015,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1444:0:55"
            },
            "scope": 12133,
            "src": "1373:928:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 12134,
        "src": "259:2044:55"
      }
    ],
    "src": "0:2304:55"
  },
  "legacyAST": {
    "absolutePath": "@pando/colony/contracts/PandoColony.sol",
    "exportedSymbols": {
      "PandoColony": [
        12133
      ]
    },
    "id": 12134,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 11943,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:55"
      },
      {
        "absolutePath": "@aragon/os/contracts/kernel/Kernel.sol",
        "file": "@aragon/os/contracts/kernel/Kernel.sol",
        "id": 11944,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 10748,
        "src": "26:48:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/acl/ACL.sol",
        "file": "@aragon/os/contracts/acl/ACL.sol",
        "id": 11945,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 7167,
        "src": "75:42:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/apps/AragonApp.sol",
        "file": "@aragon/os/contracts/apps/AragonApp.sol",
        "id": 11946,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 8476,
        "src": "118:49:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@pando/repository/contracts/PandoRepository.sol",
        "file": "@pando/repository/contracts/PandoRepository.sol",
        "id": 11947,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 12656,
        "src": "168:57:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@pando/colony/contracts/apm/APMFetcher.sol",
        "file": "./apm/APMFetcher.sol",
        "id": 11948,
        "nodeType": "ImportDirective",
        "scope": 12134,
        "sourceUnit": 12230,
        "src": "226:30:55",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 11949,
              "name": "APMFetcher",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 12229,
              "src": "283:10:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_APMFetcher_$12229",
                "typeString": "contract APMFetcher"
              }
            },
            "id": 11950,
            "nodeType": "InheritanceSpecifier",
            "src": "283:10:55"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 11951,
              "name": "AragonApp",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8475,
              "src": "295:9:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AragonApp_$8475",
                "typeString": "contract AragonApp"
              }
            },
            "id": 11952,
            "nodeType": "InheritanceSpecifier",
            "src": "295:9:55"
          }
        ],
        "contractDependencies": [
          7585,
          8347,
          8475,
          8488,
          8621,
          8663,
          8761,
          8789,
          8822,
          8869,
          9066,
          9476,
          9503,
          10769,
          12193,
          12229
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 12133,
        "linearizedBaseContracts": [
          12133,
          8475,
          7585,
          9476,
          10769,
          9503,
          9066,
          8789,
          8621,
          8663,
          8488,
          8822,
          8761,
          8869,
          8347,
          12229,
          12193
        ],
        "name": "PandoColony",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 11957,
            "name": "CREATE_REPOSITORY_ROLE",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "311:84:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 11953,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "311:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "4352454154455f5245504f5349544f52595f524f4c45",
                  "id": 11955,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "370:24:55",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_95cbb5080e74aaf2c7e513453d8c7ed90c382845b9daffb7e6029bcd73221142",
                    "typeString": "literal_string \"CREATE_REPOSITORY_ROLE\""
                  },
                  "value": "CREATE_REPOSITORY_ROLE"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_95cbb5080e74aaf2c7e513453d8c7ed90c382845b9daffb7e6029bcd73221142",
                    "typeString": "literal_string \"CREATE_REPOSITORY_ROLE\""
                  }
                ],
                "id": 11954,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 12664,
                "src": "360:9:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                  "typeString": "function () pure returns (bytes32)"
                }
              },
              "id": 11956,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "360:35:55",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 11959,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "402:14:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$11104",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 11958,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11104,
              "src": "402:3:55",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$11104",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 11961,
            "name": "devchain",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "422:20:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 11960,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "422:4:55",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 11965,
            "name": "repositories",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "448:55:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_PandoRepository_$12655_$",
              "typeString": "mapping(uint256 => contract PandoRepository)"
            },
            "typeName": {
              "id": 11964,
              "keyType": {
                "id": 11962,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "456:7:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "448:35:55",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_PandoRepository_$12655_$",
                "typeString": "mapping(uint256 => contract PandoRepository)"
              },
              "valueType": {
                "contractScope": null,
                "id": 11963,
                "name": "PandoRepository",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 12655,
                "src": "467:15:55",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_PandoRepository_$12655",
                  "typeString": "contract PandoRepository"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 11968,
            "name": "repositoriesLength",
            "nodeType": "VariableDeclaration",
            "scope": 12133,
            "src": "509:37:55",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 11966,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "509:7:55",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 11967,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "545:1:55",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 11972,
            "name": "CreateRepository",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 11971,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11970,
                  "indexed": false,
                  "name": "repository",
                  "nodeType": "VariableDeclaration",
                  "scope": 11972,
                  "src": "576:18:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 11969,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "576:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "575:20:55"
            },
            "src": "553:43:55"
          },
          {
            "body": {
              "id": 11992,
              "nodeType": "Block",
              "src": "934:80:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 11981,
                      "name": "initialized",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8746,
                      "src": "944:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 11982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "944:13:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 11983,
                  "nodeType": "ExpressionStatement",
                  "src": "944:13:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 11986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 11984,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11959,
                      "src": "967:3:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$11104",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 11985,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11974,
                      "src": "973:4:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$11104",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "967:10:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 11987,
                  "nodeType": "ExpressionStatement",
                  "src": "967:10:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 11990,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 11988,
                      "name": "devchain",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11961,
                      "src": "987:8:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 11989,
                      "name": "_devchain",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11976,
                      "src": "998:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "987:20:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 11991,
                  "nodeType": "ExpressionStatement",
                  "src": "987:20:55"
                }
              ]
            },
            "documentation": "@notice Initialize Colony app with `_ens` as a ENS registry\n@param _ens Address of the ENS registry to fetch pando apps address from\n@param _devchain Whether the app is deployed on devchain or not",
            "id": 11993,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 11979,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 11978,
                  "name": "onlyInit",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8693,
                  "src": "925:8:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "925:8:55"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11974,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 11993,
                  "src": "890:8:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$11104",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 11973,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 11104,
                    "src": "890:3:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$11104",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11976,
                  "name": "_devchain",
                  "nodeType": "VariableDeclaration",
                  "scope": 11993,
                  "src": "900:14:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 11975,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "900:4:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "889:26:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 11980,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "934:0:55"
            },
            "scope": 12133,
            "src": "870:144:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12008,
              "nodeType": "Block",
              "src": "1274:55:55",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12004,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11995,
                        "src": "1302:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12005,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11997,
                        "src": "1309:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 12003,
                      "name": "_createRepository",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12132,
                      "src": "1284:17:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 12006,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1284:38:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12007,
                  "nodeType": "ExpressionStatement",
                  "src": "1284:38:55"
                }
              ]
            },
            "documentation": "@notice Create repository '`_name`'\n@param _name Name of the repository\n@param _description Description of the repository",
            "id": 12009,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12000,
                    "name": "CREATE_REPOSITORY_ROLE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 11957,
                    "src": "1250:22:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 12001,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 11999,
                  "name": "auth",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8387,
                  "src": "1245:4:55",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1245:28:55"
              }
            ],
            "name": "createRepository",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 11998,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 11995,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12009,
                  "src": "1201:12:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11994,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1201:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 11997,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12009,
                  "src": "1215:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 11996,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1215:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1200:35:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 12002,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1274:0:55"
            },
            "scope": 12133,
            "src": "1175:154:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 12131,
              "nodeType": "Block",
              "src": "1444:857:55",
              "statements": [
                {
                  "assignments": [
                    12017
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12017,
                      "name": "dao",
                      "nodeType": "VariableDeclaration",
                      "scope": 12132,
                      "src": "1454:10:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Kernel_$10747",
                        "typeString": "contract Kernel"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12016,
                        "name": "Kernel",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 10747,
                        "src": "1454:6:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Kernel_$10747",
                          "typeString": "contract Kernel"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12022,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 12019,
                          "name": "kernel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8310,
                          "src": "1474:6:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IKernel_$10248_$",
                            "typeString": "function () view returns (contract IKernel)"
                          }
                        },
                        "id": 12020,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1474:8:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IKernel_$10248",
                          "typeString": "contract IKernel"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IKernel_$10248",
                          "typeString": "contract IKernel"
                        }
                      ],
                      "id": 12018,
                      "name": "Kernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10747,
                      "src": "1467:6:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Kernel_$10747_$",
                        "typeString": "type(contract Kernel)"
                      }
                    },
                    "id": 12021,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1467:16:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Kernel_$10747",
                      "typeString": "contract Kernel"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1454:29:55"
                },
                {
                  "assignments": [
                    12024
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12024,
                      "name": "acl",
                      "nodeType": "VariableDeclaration",
                      "scope": 12132,
                      "src": "1493:7:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ACL_$7166",
                        "typeString": "contract ACL"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12023,
                        "name": "ACL",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7166,
                        "src": "1493:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12030,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12026,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12017,
                            "src": "1507:3:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 12027,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "acl",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10609,
                          "src": "1507:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IACL_$7681_$",
                            "typeString": "function () view external returns (contract IACL)"
                          }
                        },
                        "id": 12028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1507:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      ],
                      "id": 12025,
                      "name": "ACL",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7166,
                      "src": "1503:3:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_ACL_$7166_$",
                        "typeString": "type(contract ACL)"
                      }
                    },
                    "id": 12029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1503:14:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ACL_$7166",
                      "typeString": "contract ACL"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1493:24:55"
                },
                {
                  "assignments": [
                    12032
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12032,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 12132,
                      "src": "1527:12:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 12031,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1527:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12038,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "70616e646f2d7265706f7369746f7279",
                        "id": 12034,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1554:18:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c48a3004a9e151fcf9e475a681d40453a1ba0625150fcb821fbad82524bfcae5",
                          "typeString": "literal_string \"pando-repository\""
                        },
                        "value": "pando-repository"
                      },
                      {
                        "argumentTypes": null,
                        "id": 12036,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1574:9:55",
                        "subExpression": {
                          "argumentTypes": null,
                          "id": 12035,
                          "name": "devchain",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 11961,
                          "src": "1575:8:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_c48a3004a9e151fcf9e475a681d40453a1ba0625150fcb821fbad82524bfcae5",
                          "typeString": "literal_string \"pando-repository\""
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12033,
                      "name": "apmNamehash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12192,
                      "src": "1542:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_bytes32_$",
                        "typeString": "function (string memory,bool) pure returns (bytes32)"
                      }
                    },
                    "id": 12037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1542:42:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1527:57:55"
                },
                {
                  "assignments": [
                    12040
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 12040,
                      "name": "repository",
                      "nodeType": "VariableDeclaration",
                      "scope": 12132,
                      "src": "1595:26:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PandoRepository_$12655",
                        "typeString": "contract PandoRepository"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 12039,
                        "name": "PandoRepository",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 12655,
                        "src": "1595:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 12051,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12044,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12032,
                            "src": "1659:4:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 12046,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 11959,
                                "src": "1686:3:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$11104",
                                  "typeString": "contract ENS"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 12047,
                                "name": "hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12032,
                                "src": "1691:4:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_ENS_$11104",
                                  "typeString": "contract ENS"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 12045,
                              "name": "latestVersionAppBase",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12228,
                              "src": "1665:20:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_contract$_ENS_$11104_$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (contract ENS,bytes32) view returns (address)"
                              }
                            },
                            "id": 12048,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1665:31:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12042,
                            "name": "dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12017,
                            "src": "1640:3:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 12043,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "newAppInstance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10373,
                          "src": "1640:18:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_ERCProxy_$11872_$",
                            "typeString": "function (bytes32,address) external returns (contract ERCProxy)"
                          }
                        },
                        "id": 12049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1640:57:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERCProxy_$11872",
                          "typeString": "contract ERCProxy"
                        }
                      ],
                      "id": 12041,
                      "name": "PandoRepository",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12655,
                      "src": "1624:15:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_PandoRepository_$12655_$",
                        "typeString": "type(contract PandoRepository)"
                      }
                    },
                    "id": 12050,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1624:74:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PandoRepository_$12655",
                      "typeString": "contract PandoRepository"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1595:103:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12052,
                      "name": "repositoriesLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11968,
                      "src": "1708:18:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 12055,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 12053,
                        "name": "repositoriesLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11968,
                        "src": "1729:18:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 12054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1750:1:55",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "1729:22:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1708:43:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 12057,
                  "nodeType": "ExpressionStatement",
                  "src": "1708:43:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 12058,
                        "name": "repositories",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11965,
                        "src": "1761:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_PandoRepository_$12655_$",
                          "typeString": "mapping(uint256 => contract PandoRepository)"
                        }
                      },
                      "id": 12060,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 12059,
                        "name": "repositoriesLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11968,
                        "src": "1774:18:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1761:32:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PandoRepository_$12655",
                        "typeString": "contract PandoRepository"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 12061,
                      "name": "repository",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12040,
                      "src": "1796:10:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PandoRepository_$12655",
                        "typeString": "contract PandoRepository"
                      }
                    },
                    "src": "1761:45:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PandoRepository_$12655",
                      "typeString": "contract PandoRepository"
                    }
                  },
                  "id": 12063,
                  "nodeType": "ExpressionStatement",
                  "src": "1761:45:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 12067,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12011,
                        "src": "1839:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12068,
                        "name": "_description",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12013,
                        "src": "1846:12:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12064,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "1817:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      "id": 12066,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 12341,
                      "src": "1817:21:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory) external"
                      }
                    },
                    "id": 12069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1817:42:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12070,
                  "nodeType": "ExpressionStatement",
                  "src": "1817:42:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12074,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "1890:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1890:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12076,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "1902:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12077,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "1914:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          },
                          "id": 12078,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "PUSH_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12240,
                          "src": "1914:20:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 12079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1914:22:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12080,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "1938:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12081,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1938:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12071,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12024,
                        "src": "1869:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 12073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "1869:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 12082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1869:80:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12083,
                  "nodeType": "ExpressionStatement",
                  "src": "1869:80:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12089,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "-",
                            "prefix": true,
                            "src": "1988:2:55",
                            "subExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 12088,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1989:1:55",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_-1_by_1",
                              "typeString": "int_const -1"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_-1_by_1",
                              "typeString": "int_const -1"
                            }
                          ],
                          "id": 12087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1980:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 12090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1980:11:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12091,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "1993:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12092,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "2005:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          },
                          "id": 12093,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "OPEN_PR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12245,
                          "src": "2005:23:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 12094,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2005:25:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12095,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2032:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12096,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2032:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12084,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12024,
                        "src": "1959:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 12086,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "1959:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 12097,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1959:84:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12098,
                  "nodeType": "ExpressionStatement",
                  "src": "1959:84:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12102,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2074:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12103,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2074:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12104,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "2086:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12105,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "2098:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          },
                          "id": 12106,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "SORT_PR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12250,
                          "src": "2098:23:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 12107,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2098:25:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12108,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2125:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12109,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2125:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12099,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12024,
                        "src": "2053:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 12101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "2053:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 12110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2053:83:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12111,
                  "nodeType": "ExpressionStatement",
                  "src": "2053:83:55"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12115,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2167:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12116,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2167:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 12117,
                        "name": "repository",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12040,
                        "src": "2179:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 12118,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "2191:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          },
                          "id": 12119,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "UPDATE_INFORMATIONS_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 12255,
                          "src": "2191:35:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 12120,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2191:37:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 12121,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12670,
                          "src": "2230:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 12122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2230:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_PandoRepository_$12655",
                          "typeString": "contract PandoRepository"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 12112,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12024,
                        "src": "2146:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 12114,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "2146:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 12123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2146:95:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12124,
                  "nodeType": "ExpressionStatement",
                  "src": "2146:95:55"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12127,
                            "name": "repository",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12040,
                            "src": "2282:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_PandoRepository_$12655",
                              "typeString": "contract PandoRepository"
                            }
                          ],
                          "id": 12126,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2274:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 12128,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2274:19:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 12125,
                      "name": "CreateRepository",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 11972,
                      "src": "2257:16:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 12129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2257:37:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12130,
                  "nodeType": "EmitStatement",
                  "src": "2252:42:55"
                }
              ]
            },
            "documentation": "*** internal functions ****",
            "id": 12132,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_createRepository",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12014,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12011,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 12132,
                  "src": "1400:12:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12010,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1400:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12013,
                  "name": "_description",
                  "nodeType": "VariableDeclaration",
                  "scope": 12132,
                  "src": "1414:19:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 12012,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1414:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1399:35:55"
            },
            "payable": false,
            "returnParameters": {
              "id": 12015,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1444:0:55"
            },
            "scope": 12133,
            "src": "1373:928:55",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 12134,
        "src": "259:2044:55"
      }
    ],
    "src": "0:2304:55"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.1",
  "updatedAt": "2019-03-29T09:45:33.566Z",
  "devdoc": {
    "methods": {
      "allowRecoverability(address)": {
        "details": "By default deriving from AragonApp makes it recoverable",
        "params": {
          "token": "Token address that would be recovered"
        },
        "return": "bool whether the app allows the recovery"
      },
      "canPerform(address,bytes32,uint256[])": {
        "details": "Check whether an action can be performed by a sender for a particular role on this app",
        "params": {
          "_params": "Permission params for the role",
          "_role": "Role on this app",
          "_sender": "Sender of the call"
        },
        "return": "Boolean indicating whether the sender has the permissions to perform the action.        Always returns false if the app hasn't been initialized yet."
      },
      "createRepository(string,string)": {
        "params": {
          "_description": "Description of the repository",
          "_name": "Name of the repository"
        }
      },
      "getInitializationBlock()": {
        "return": "Block number in which the contract was initialized"
      },
      "getRecoveryVault()": {
        "details": "Get the recovery vault for the app",
        "return": "Recovery vault address for the app"
      },
      "hasInitialized()": {
        "return": "Whether the contract has been initialized by the time of the current block"
      },
      "initialize(address,bool)": {
        "params": {
          "_devchain": "Whether the app is deployed on devchain or not",
          "_ens": "Address of the ENS registry to fetch pando apps address from"
        }
      },
      "transferToVault(address)": {
        "params": {
          "_token": "Token balance to be sent to recovery vault."
        }
      }
    }
  },
  "userdoc": {
    "methods": {
      "createRepository(string,string)": {
        "notice": "Create repository '`_name`'"
      },
      "initialize(address,bool)": {
        "notice": "Initialize Colony app with `_ens` as a ENS registry"
      },
      "transferToVault(address)": {
        "notice": "Send funds to recovery Vault. This contract should never receive funds,        but in case it does, this function allows one to recover them."
      }
    }
  }
}