{
  "contractName": "EVMScriptRegistryFactory",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "baseReg",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "baseDeployDel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "EVMSCRIPT_REGISTRY_APP_ID",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_dao",
          "type": "address"
        },
        {
          "name": "_root",
          "type": "address"
        }
      ],
      "name": "newEVMScriptRegistry",
      "outputs": [
        {
          "name": "reg",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "EVMSCRIPT_REGISTRY_APP",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "baseCalls",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kernel",
          "type": "address"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "name": "_initializePayload",
          "type": "bytes"
        }
      ],
      "name": "newAppProxyPinned",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kernel",
          "type": "address"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        }
      ],
      "name": "newAppProxy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "baseDel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kernel",
          "type": "address"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "name": "_initializePayload",
          "type": "bytes"
        }
      ],
      "name": "newAppProxy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kernel",
          "type": "address"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        }
      ],
      "name": "newAppProxyPinned",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "proxy",
          "type": "address"
        }
      ],
      "name": "NewAppProxy",
      "type": "event"
    }
  ],
  "bytecode": "0x606060405234156200001057600080fd5b6200001a62000199565b604051809103906000f08015156200003157600080fd5b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200007a620001aa565b604051809103906000f08015156200009157600080fd5b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000db620001bb565b604051809103906000f0801515620000f257600080fd5b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200013c620001cc565b604051809103906000f08015156200015357600080fd5b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001dd565b604051610f238062002dda83390190565b60405161046e8062003cfd83390190565b6040516105c0806200416b83390190565b604051610663806200472b83390190565b612bed80620001ed6000396000f300606060405260043610620000bb576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063127d679c14620000c05780631b380940146200011857806360b1e0571462000170578063869abc2414620001a45780639b3fdf4c146200023f578063af9a21bc1462000273578063d162f8b014620002cb578063e156a8f31462000397578063e602e7121462000420578063ede658b01462000478578063ff289fc51462000544575b600080fd5b3415620000cc57600080fd5b620000d6620005cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200012457600080fd5b6200012e620005f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200017c57600080fd5b6200018662000618565b60405180826000191660001916815260200191505060405180910390f35b3415620001b057600080fd5b620001fd600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505062000651565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200024b57600080fd5b6200025562001179565b60405180826000191660001916815260200191505060405180910390f35b34156200027f57600080fd5b6200028962001214565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415620002d757600080fd5b62000355600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506200123a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415620003a357600080fd5b620003de600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505062001385565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200042c57600080fd5b62000436620013c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200048457600080fd5b62000502600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050620013e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200055057600080fd5b6200058b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505062001531565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b6000808373ffffffffffffffffffffffffffffffffffffffff1663958fde8260405180807f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815250601301905060405180910390206000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15156200075e57600080fd5b6102c65a03f115156200077057600080fd5b5050506040518051905091508173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515620007e057600080fd5b6102c65a03f11515620007f257600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff1663de2873596000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200086257600080fd5b6102c65a03f115156200087457600080fd5b5050506040518051905090508373ffffffffffffffffffffffffffffffffffffffff1663ae5b25408573ffffffffffffffffffffffffffffffffffffffff1663178e60796000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200090957600080fd5b6102c65a03f115156200091b57600080fd5b5050506040518051905060405180807f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020856000604051602001526040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b151562000a0157600080fd5b6102c65a03f1151562000a1357600080fd5b50505060405180519050508073ffffffffffffffffffffffffffffffffffffffff1663be03847830848573ffffffffffffffffffffffffffffffffffffffff1663bd8fde1c6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151562000aa957600080fd5b6102c65a03f1151562000abb57600080fd5b50505060405180519050306040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b151562000bb957600080fd5b6102c65a03f1151562000bcb57600080fd5b5050508173ffffffffffffffffffffffffffffffffffffffff166387a16f12600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151562000c9457600080fd5b6102c65a03f1151562000ca657600080fd5b50505060405180519050508173ffffffffffffffffffffffffffffffffffffffff166387a16f12600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151562000d7757600080fd5b6102c65a03f1151562000d8957600080fd5b50505060405180519050508173ffffffffffffffffffffffffffffffffffffffff166387a16f12600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151562000e5a57600080fd5b6102c65a03f1151562000e6c57600080fd5b50505060405180519050508073ffffffffffffffffffffffffffffffffffffffff16639d0effdb30848573ffffffffffffffffffffffffffffffffffffffff1663bd8fde1c6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151562000f0257600080fd5b6102c65a03f1151562000f1457600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b151562000fde57600080fd5b6102c65a03f1151562000ff057600080fd5b5050508073ffffffffffffffffffffffffffffffffffffffff1663afd925df84848573ffffffffffffffffffffffffffffffffffffffff1663bd8fde1c6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200107e57600080fd5b6102c65a03f115156200109057600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b15156200115a57600080fd5b6102c65a03f115156200116c57600080fd5b5050508191505092915050565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808484846200124a6200156c565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620012c9578082015181840152602081019050620012ac565b50505050905090810190601f168015620012f75780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f08015156200131557600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1809150509392505050565b6000620013b8838360006040518059106200139d5750595b9080825280601f01601f1916602001820160405250620013e6565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080848484620013f66200157d565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b838110156200147557808201518184015260208101905062001458565b50505050905090810190601f168015620014a35780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515620014c157600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1809150509392505050565b60006200156483836000604051805910620015495750595b9080825280601f01601f19166020018201604052506200123a565b905092915050565b604051610b2a806200158f83390190565b604051610b0980620020b98339019056006060604052341561000f57600080fd5b604051610b2a380380610b2a833981016040528080519060200190919080519060200190919080518201919050508282826000836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600181600019169055506100ab60015461023b64010000000002610655176401000000009004565b9050600082511115610173576100d38161036164010000000002610642176401000000009004565b15156100de57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015610123578082015181840152602081019050610108565b50505050905090810190601f1680156101505780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561017257600080fd5b5b5050505061019560015461023b64010000000002610655176401000000009004565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561023357600080fd5b505050610374565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f6261736500000000000000000000000000000000000000000000000000000000815250600401905060405180910390208460405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561033f57600080fd5b6102c65a03f1151561035057600080fd5b505050604051805190509050919050565b600080823b905060008111915050919050565b6107a7806103836000396000f3006060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631113ed0d146100f5578063178e6079146101265780632501269914610157578063756f60491461018857806380afdea8146101b9578063a3b4b07f146101ea578063cbcc65eb1461021b578063d4aae0c41461024c578063daa3a163146102a1578063db8a61d4146102ce578063ea879634146102ff575b6100f36100ba610354565b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061037e565b005b341561010057600080fd5b6101086103bc565b60405180826000191660001916815260200191505060405180910390f35b341561013157600080fd5b6101396103f5565b60405180826000191660001916815260200191505060405180910390f35b341561016257600080fd5b61016a61042e565b60405180826000191660001916815260200191505060405180910390f35b341561019357600080fd5b61019b6104c9565b60405180826000191660001916815260200191505060405180910390f35b34156101c457600080fd5b6101cc610502565b60405180826000191660001916815260200191505060405180910390f35b34156101f557600080fd5b6101fd610508565b60405180826000191660001916815260200191505060405180910390f35b341561022657600080fd5b61022e6105a3565b60405180826000191660001916815260200191505060405180910390f35b341561025757600080fd5b61025f6105dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610601565b604051808215151515815260200191505060405180910390f35b34156102d957600080fd5b6102e1610609565b60405180826000191660001916815260200191505060405180910390f35b341561030a57600080fd5b610312610354565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61038782610642565b151561039257600080fd5b600080825160208401856127105a03f43d604051816000823e82600081146103b8578282f35b8282fd5b60405180807f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902081565b60405180807f636f7265000000000000000000000000000000000000000000000000000000008152506004019050604051809103902060405180807f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60405180807f636f7265000000000000000000000000000000000000000000000000000000008152506004019050604051809103902081565b60015481565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081525060100190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60405180807f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152506010019050604051809103902081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080905090565b60405180807f62617365000000000000000000000000000000000000000000000000000000008152506004019050604051809103902081565b600080823b905060008111915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f6261736500000000000000000000000000000000000000000000000000000000815250600401905060405180910390208460405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561075957600080fd5b6102c65a03f1151561076a57600080fd5b5050506040518051905090509190505600a165627a7a72305820b5d81f69b6750f0b2f8ca76fd9719ae3361420197c677ba94a2d64728dc49c4100296060604052341561000f57600080fd5b604051610b09380380610b09833981016040528080519060200190919080519060200190919080518201919050508282826000836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600181600019169055506100ab60015461017f640100000000026106dd176401000000009004565b9050600082511115610173576100d3816102a564010000000002610803176401000000009004565b15156100de57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015610123578082015181840152602081019050610108565b50505050905090810190601f1680156101505780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561017257600080fd5b5b505050505050506102b8565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f6261736500000000000000000000000000000000000000000000000000000000815250600401905060405180910390208460405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561028357600080fd5b6102c65a03f1151561029457600080fd5b505050604051805190509050919050565b600080823b905060008111915050919050565b610842806102c76000396000f3006060604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631113ed0d1461012c578063178e60791461015d578063250126991461018e5780633bc7ebac146101bf578063756f60491461021457806380afdea814610245578063a3b4b07f14610276578063cbcc65eb146102a7578063d4aae0c4146102d8578063daa3a1631461032d578063db8a61d41461035a578063ea8796341461038b575b60006100c46103e0565b905060008173ffffffffffffffffffffffffffffffffffffffff16141515156100ec57600080fd5b610129816000368080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506103f2565b50005b341561013757600080fd5b61013f610430565b60405180826000191660001916815260200191505060405180910390f35b341561016857600080fd5b610170610469565b60405180826000191660001916815260200191505060405180910390f35b341561019957600080fd5b6101a16104a2565b60405180826000191660001916815260200191505060405180910390f35b34156101ca57600080fd5b6101d261053d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561021f57600080fd5b610227610563565b60405180826000191660001916815260200191505060405180910390f35b341561025057600080fd5b61025861059c565b60405180826000191660001916815260200191505060405180910390f35b341561028157600080fd5b6102896105a2565b60405180826000191660001916815260200191505060405180910390f35b34156102b257600080fd5b6102ba61063d565b60405180826000191660001916815260200191505060405180910390f35b34156102e357600080fd5b6102eb610676565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561033857600080fd5b61034061069b565b604051808215151515815260200191505060405180910390f35b341561036557600080fd5b61036d6106a4565b60405180826000191660001916815260200191505060405180910390f35b341561039657600080fd5b61039e6103e0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006103ed6001546106dd565b905090565b6103fb82610803565b151561040657600080fd5b600080825160208401856127105a03f43d604051816000823e826000811461042c578282f35b8282fd5b60405180807f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902081565b60405180807f636f7265000000000000000000000000000000000000000000000000000000008152506004019050604051809103902060405180807f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60405180807f636f7265000000000000000000000000000000000000000000000000000000008152506004019050604051809103902081565b60015481565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081525060100190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60405180807f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152506010019050604051809103902081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006001905090565b60405180807f62617365000000000000000000000000000000000000000000000000000000008152506004019050604051809103902081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f6261736500000000000000000000000000000000000000000000000000000000815250600401905060405180910390208460405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156107e157600080fd5b6102c65a03f115156107f257600080fd5b505050604051805190509050919050565b600080823b9050600081119150509190505600a165627a7a72305820ef3c6c95f97152c15964434ad01baaa1da415b559a1268635b7357c955f04b680029a165627a7a72305820891ae66abe67d8266fe4a2d438cbe76d778ee7173129948973b778873db6f19e00296060604052341561000f57600080fd5b610f058061001e6000396000f3006060604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304bf2a7f146100ca5780635ca4d4bb1461016757806360b1e0571461018a57806380afdea8146101bb5780638129fc1c146101ec57806387a16f12146102015780638b3dd7491461024e5780639b3fdf4c14610277578063a1658fad146102a8578063bd8fde1c14610346578063d4aae0c414610377578063f92a79ff146103cc578063f97a05df14610469575b600080fd5b34156100d557600080fd5b610125600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506104d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561017257600080fd5b6101886004808035906020019091905050610578565b005b341561019557600080fd5b61019d6105eb565b60405180826000191660001916815260200191505060405180910390f35b34156101c657600080fd5b6101ce610624565b60405180826000191660001916815260200191505060405180910390f35b34156101f757600080fd5b6101ff61062a565b005b341561020c57600080fd5b610238600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610704565b6040518082815260200191505060405180910390f35b341561025957600080fd5b610261610804565b6040518082815260200191505060405180910390f35b341561028257600080fd5b61028a61080e565b60405180826000191660001916815260200191505060405180910390f35b34156102b357600080fd5b61032c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506108a9565b604051808215151515815260200191505060405180910390f35b341561035157600080fd5b610359610aa9565b60405180826000191660001916815260200191505060405180910390f35b341561038257600080fd5b61038a610ab0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103d757600080fd5b610427600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610ad5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047457600080fd5b61048a6004808035906020019091905050610bdc565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390f35b60008060006104e584610c39565b63ffffffff169150600082148061050157506064805490508210155b1561050f5760009250610571565b60648281548110151561051e57fe5b906000526020600020900190508060000160149054906101000a900460ff1661054857600061056e565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b92505b5050919050565b600180026105a6338260006040518059106105905750595b90808252806020026020018201604052506108a9565b15156105b157600080fd5b60006064838154811015156105c257fe5b906000526020600020900160000160146101000a81548160ff0219169083151502179055505050565b60405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b60015481565b600060035414151561063b57600080fd5b610643610c4d565b606480548060010182816106579190610e3f565b916000526020600020900160006040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff021916908315150217905550505050565b6000600180026107343382600060405180591061071e5750595b90808252806020026020018201604052506108a9565b151561073f57600080fd5b606480548060010182816107539190610e3f565b9160005260206000209001600060408051908101604052808773ffffffffffffffffffffffffffffffffffffffff16815260200160011515815250909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff0219169083151502179055505050915050919050565b6000600354905090565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60006108b3610e6b565b600080845111156108cc57602084510290508391508082525b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a9e57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fdef9106873088866000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a34578082015181840152602081019050610a19565b50505050905090810190601f168015610a615780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610a8257600080fd5b6102c65a03f11515610a9357600080fd5b505050604051805190505b925050509392505050565b6001800281565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610adf610c6e565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b6f578082015181840152602081019050610b54565b50505050905090810190601f168015610b9c5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1515610bba57600080fd5b6102c65a03f11515610bcb57600080fd5b505050604051805190509050919050565b606481815481101515610beb57fe5b90600052602060002090016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b6000610c46826000610dcc565b9050919050565b6000600354141515610c5e57600080fd5b610c66610e26565b600381905550565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902060405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610da857600080fd5b6102c65a03f11515610db957600080fd5b5050506040518051905090508091505090565b600080610dd98484610e2e565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b600043905090565b600081602001830151905092915050565b815481835581811511610e6657818360005260206000209182019101610e659190610e7f565b5b505050565b602060405190810160405280600081525090565b610ed691905b80821115610ed257600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff021916905550600101610e85565b5090565b905600a165627a7a723058209e35f4df648d02183ed4fb2dff34a7e6a7ac43f54a326c02c12bc7d1460f151000296060604052341561000f57600080fd5b6104508061001e6000396000f300606060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063279cea3514610046575b600080fd5b341561005157600080fd5b61009a6004808035906020019082018035906020019190919290803590602001908201803590602001919091929080359060200190820180359060200191909192905050610115565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100da5780820151818401526020810190506100bf565b50505050905090810190601f1680156101075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61011d610410565b6000806000806000600494505b8b8b905085101561033c5761017a858d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061034b90919063ffffffff16565b9350600092505b878790508310156101fe57878784818110151561019a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156101f157600080fd5b8280600101935050610181565b8373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a46102b7601486018d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061039590919063ffffffff16565b63ffffffff16915061030a600460148701018d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506103ef90919063ffffffff16565b905060008083836000886113885a03f180600081146103285761032d565b600080fd5b5050816018018501945061012a565b50505050509695505050505050565b60008061035884846103ff565b90506c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082160491505092915050565b6000806103a284846103ff565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b6000816020018301905092915050565b600081602001830151905092915050565b6020604051908101604052806000815250905600a165627a7a72305820d5ecd9ccd01f8fd5ebfdef9d29e760b8c7db500a215d9cac3e52d00cc7bb8c1600296060604052341561000f57600080fd5b6105a28061001e6000396000f300606060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063279cea3514610046575b600080fd5b341561005157600080fd5b61009a6004808035906020019082018035906020019190919290803590602001908201803590602001919091929080359060200190820180359060200191909192905050610115565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100da5780820151818401526020810190506100bf565b50505050905090810190601f1680156101075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61011d610562565b60008383905014151561012f57600080fd5b60146004018787905014151561014457600080fd5b6101c561018d600489898080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506101d190919063ffffffff16565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061021b565b90509695505050505050565b6000806101de84846102f2565b90506c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082160491505092915050565b610223610562565b61022c83610303565b151561023757600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008351116102645761025f610316565b610266565b825b60405180828051906020019080838360005b83811015610293578082015181840152602081019050610278565b50505050905090810190601f1680156102c05780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f491505015156102e257600080fd5b6102ea610388565b905092915050565b600081602001830151905092915050565b600080823b905060008111915050919050565b61031e610562565b610383600073ffffffffffffffffffffffffffffffffffffffff1663c1c0e9c490507c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166103b1565b905090565b610390610562565b3d6040519150602081018201604052808252806000602084013e5080905090565b6103b9610562565b6103c1610562565b60046040518059106103d05750595b9080825280601f01601f19166020018201604052509050828160008151811015156103f757fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506008837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a0281600181518110151561045d57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506010837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a028160028151811015156104c357fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506018837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a0281600381518110151561052957fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080915050919050565b6020604051908101604052806000815250905600a165627a7a723058203efcc7eae6186e34007fbcedc8179d925e755a99e9580e41849751888aeadefd00296060604052341561000f57600080fd5b6106458061001e6000396000f300606060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063279cea3514610046575b600080fd5b341561005157600080fd5b61009a6004808035906020019082018035906020019190919290803590602001908201803590602001919091929080359060200190820180359060200191909192905050610115565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100da5780820151818401526020810190506100bf565b50505050905090810190601f1680156101075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61011d610605565b60008060008585905014151561013257600080fd5b88886040518083838082843782019150509250505060405180910390209150600080836000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561025a576101fe89898080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506102a4565b905080600080846000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6102968188888080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506102cf565b925050509695505050505050565b60006004825103602483016000f09050803b15600181146102c4576102c9565b600080fd5b50919050565b6102d7610605565b6102e0836103a6565b15156102eb57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166000835111610318576103136103b9565b61031a565b825b60405180828051906020019080838360005b8381101561034757808201518184015260208101905061032c565b50505050905090810190601f1680156103745780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561039657600080fd5b61039e61042b565b905092915050565b600080823b905060008111915050919050565b6103c1610605565b610426600073ffffffffffffffffffffffffffffffffffffffff1663c1c0e9c490507c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916610454565b905090565b610433610605565b3d6040519150602081018201604052808252806000602084013e5080905090565b61045c610605565b610464610605565b60046040518059106104735750595b9080825280601f01601f191660200182016040525090508281600081518110151561049a57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506008837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a0281600181518110151561050057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506010837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a0281600281518110151561056657fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506018837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060020a028160038151811015156105cc57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080915050919050565b6020604051908101604052806000815250905600a165627a7a723058209f0adb1a26ba248f3124cb5a1169e1bba113d933e95932e16456c8de6151b9630029",
  "deployedBytecode": "0x606060405260043610620000bb576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063127d679c14620000c05780631b380940146200011857806360b1e0571462000170578063869abc2414620001a45780639b3fdf4c146200023f578063af9a21bc1462000273578063d162f8b014620002cb578063e156a8f31462000397578063e602e7121462000420578063ede658b01462000478578063ff289fc51462000544575b600080fd5b3415620000cc57600080fd5b620000d6620005cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200012457600080fd5b6200012e620005f2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200017c57600080fd5b6200018662000618565b60405180826000191660001916815260200191505060405180910390f35b3415620001b057600080fd5b620001fd600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505062000651565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200024b57600080fd5b6200025562001179565b60405180826000191660001916815260200191505060405180910390f35b34156200027f57600080fd5b6200028962001214565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415620002d757600080fd5b62000355600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506200123a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415620003a357600080fd5b620003de600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505062001385565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200042c57600080fd5b62000436620013c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200048457600080fd5b62000502600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050620013e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200055057600080fd5b6200058b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505062001531565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b6000808373ffffffffffffffffffffffffffffffffffffffff1663958fde8260405180807f65766d7265672e617261676f6e706d2e65746800000000000000000000000000815250601301905060405180910390206000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15156200075e57600080fd5b6102c65a03f115156200077057600080fd5b5050506040518051905091508173ffffffffffffffffffffffffffffffffffffffff16638129fc1c6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515620007e057600080fd5b6102c65a03f11515620007f257600080fd5b5050508373ffffffffffffffffffffffffffffffffffffffff1663de2873596000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200086257600080fd5b6102c65a03f115156200087457600080fd5b5050506040518051905090508373ffffffffffffffffffffffffffffffffffffffff1663ae5b25408573ffffffffffffffffffffffffffffffffffffffff1663178e60796000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200090957600080fd5b6102c65a03f115156200091b57600080fd5b5050506040518051905060405180807f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020856000604051602001526040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b151562000a0157600080fd5b6102c65a03f1151562000a1357600080fd5b50505060405180519050508073ffffffffffffffffffffffffffffffffffffffff1663be03847830848573ffffffffffffffffffffffffffffffffffffffff1663bd8fde1c6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151562000aa957600080fd5b6102c65a03f1151562000abb57600080fd5b50505060405180519050306040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b151562000bb957600080fd5b6102c65a03f1151562000bcb57600080fd5b5050508173ffffffffffffffffffffffffffffffffffffffff166387a16f12600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151562000c9457600080fd5b6102c65a03f1151562000ca657600080fd5b50505060405180519050508173ffffffffffffffffffffffffffffffffffffffff166387a16f12600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151562000d7757600080fd5b6102c65a03f1151562000d8957600080fd5b50505060405180519050508173ffffffffffffffffffffffffffffffffffffffff166387a16f12600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151562000e5a57600080fd5b6102c65a03f1151562000e6c57600080fd5b50505060405180519050508073ffffffffffffffffffffffffffffffffffffffff16639d0effdb30848573ffffffffffffffffffffffffffffffffffffffff1663bd8fde1c6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151562000f0257600080fd5b6102c65a03f1151562000f1457600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b151562000fde57600080fd5b6102c65a03f1151562000ff057600080fd5b5050508073ffffffffffffffffffffffffffffffffffffffff1663afd925df84848573ffffffffffffffffffffffffffffffffffffffff1663bd8fde1c6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200107e57600080fd5b6102c65a03f115156200109057600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b15156200115a57600080fd5b6102c65a03f115156200116c57600080fd5b5050508191505092915050565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808484846200124a6200156c565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620012c9578082015181840152602081019050620012ac565b50505050905090810190601f168015620012f75780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f08015156200131557600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1809150509392505050565b6000620013b8838360006040518059106200139d5750595b9080825280601f01601f1916602001820160405250620013e6565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080848484620013f66200157d565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b838110156200147557808201518184015260208101905062001458565b50505050905090810190601f168015620014a35780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801515620014c157600080fd5b90507fe28f1412cafe58e22073759128eddcccfd9c1e3326665df874bdaf26077231a981604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1809150509392505050565b60006200156483836000604051805910620015495750595b9080825280601f01601f19166020018201604052506200123a565b905092915050565b604051610b2a806200158f83390190565b604051610b0980620020b98339019056006060604052341561000f57600080fd5b604051610b2a380380610b2a833981016040528080519060200190919080519060200190919080518201919050508282826000836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600181600019169055506100ab60015461023b64010000000002610655176401000000009004565b9050600082511115610173576100d38161036164010000000002610642176401000000009004565b15156100de57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015610123578082015181840152602081019050610108565b50505050905090810190601f1680156101505780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561017257600080fd5b5b5050505061019560015461023b64010000000002610655176401000000009004565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561023357600080fd5b505050610374565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f6261736500000000000000000000000000000000000000000000000000000000815250600401905060405180910390208460405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561033f57600080fd5b6102c65a03f1151561035057600080fd5b505050604051805190509050919050565b600080823b905060008111915050919050565b6107a7806103836000396000f3006060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631113ed0d146100f5578063178e6079146101265780632501269914610157578063756f60491461018857806380afdea8146101b9578063a3b4b07f146101ea578063cbcc65eb1461021b578063d4aae0c41461024c578063daa3a163146102a1578063db8a61d4146102ce578063ea879634146102ff575b6100f36100ba610354565b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061037e565b005b341561010057600080fd5b6101086103bc565b60405180826000191660001916815260200191505060405180910390f35b341561013157600080fd5b6101396103f5565b60405180826000191660001916815260200191505060405180910390f35b341561016257600080fd5b61016a61042e565b60405180826000191660001916815260200191505060405180910390f35b341561019357600080fd5b61019b6104c9565b60405180826000191660001916815260200191505060405180910390f35b34156101c457600080fd5b6101cc610502565b60405180826000191660001916815260200191505060405180910390f35b34156101f557600080fd5b6101fd610508565b60405180826000191660001916815260200191505060405180910390f35b341561022657600080fd5b61022e6105a3565b60405180826000191660001916815260200191505060405180910390f35b341561025757600080fd5b61025f6105dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610601565b604051808215151515815260200191505060405180910390f35b34156102d957600080fd5b6102e1610609565b60405180826000191660001916815260200191505060405180910390f35b341561030a57600080fd5b610312610354565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61038782610642565b151561039257600080fd5b600080825160208401856127105a03f43d604051816000823e82600081146103b8578282f35b8282fd5b60405180807f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902081565b60405180807f636f7265000000000000000000000000000000000000000000000000000000008152506004019050604051809103902060405180807f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60405180807f636f7265000000000000000000000000000000000000000000000000000000008152506004019050604051809103902081565b60015481565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081525060100190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60405180807f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152506010019050604051809103902081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080905090565b60405180807f62617365000000000000000000000000000000000000000000000000000000008152506004019050604051809103902081565b600080823b905060008111915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f6261736500000000000000000000000000000000000000000000000000000000815250600401905060405180910390208460405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561075957600080fd5b6102c65a03f1151561076a57600080fd5b5050506040518051905090509190505600a165627a7a72305820b5d81f69b6750f0b2f8ca76fd9719ae3361420197c677ba94a2d64728dc49c4100296060604052341561000f57600080fd5b604051610b09380380610b09833981016040528080519060200190919080519060200190919080518201919050508282826000836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600181600019169055506100ab60015461017f640100000000026106dd176401000000009004565b9050600082511115610173576100d3816102a564010000000002610803176401000000009004565b15156100de57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff168260405180828051906020019080838360005b83811015610123578082015181840152602081019050610108565b50505050905090810190601f1680156101505780820380516001836020036101000a031916815260200191505b509150506000604051808303818561646e5a03f4915050151561017257600080fd5b5b505050505050506102b8565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f6261736500000000000000000000000000000000000000000000000000000000815250600401905060405180910390208460405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561028357600080fd5b6102c65a03f1151561029457600080fd5b505050604051805190509050919050565b600080823b905060008111915050919050565b610842806102c76000396000f3006060604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631113ed0d1461012c578063178e60791461015d578063250126991461018e5780633bc7ebac146101bf578063756f60491461021457806380afdea814610245578063a3b4b07f14610276578063cbcc65eb146102a7578063d4aae0c4146102d8578063daa3a1631461032d578063db8a61d41461035a578063ea8796341461038b575b60006100c46103e0565b905060008173ffffffffffffffffffffffffffffffffffffffff16141515156100ec57600080fd5b610129816000368080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506103f2565b50005b341561013757600080fd5b61013f610430565b60405180826000191660001916815260200191505060405180910390f35b341561016857600080fd5b610170610469565b60405180826000191660001916815260200191505060405180910390f35b341561019957600080fd5b6101a16104a2565b60405180826000191660001916815260200191505060405180910390f35b34156101ca57600080fd5b6101d261053d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561021f57600080fd5b610227610563565b60405180826000191660001916815260200191505060405180910390f35b341561025057600080fd5b61025861059c565b60405180826000191660001916815260200191505060405180910390f35b341561028157600080fd5b6102896105a2565b60405180826000191660001916815260200191505060405180910390f35b34156102b257600080fd5b6102ba61063d565b60405180826000191660001916815260200191505060405180910390f35b34156102e357600080fd5b6102eb610676565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561033857600080fd5b61034061069b565b604051808215151515815260200191505060405180910390f35b341561036557600080fd5b61036d6106a4565b60405180826000191660001916815260200191505060405180910390f35b341561039657600080fd5b61039e6103e0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006103ed6001546106dd565b905090565b6103fb82610803565b151561040657600080fd5b600080825160208401856127105a03f43d604051816000823e826000811461042c578282f35b8282fd5b60405180807f6b65726e656c2e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902081565b60405180807f636f7265000000000000000000000000000000000000000000000000000000008152506004019050604051809103902060405180807f6b65726e656c2e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60405180807f636f7265000000000000000000000000000000000000000000000000000000008152506004019050604051809103902081565b60015481565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f61636c2e617261676f6e706d2e6574680000000000000000000000000000000081525060100190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60405180807f61636c2e617261676f6e706d2e657468000000000000000000000000000000008152506010019050604051809103902081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006001905090565b60405180807f62617365000000000000000000000000000000000000000000000000000000008152506004019050604051809103902081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f6261736500000000000000000000000000000000000000000000000000000000815250600401905060405180910390208460405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156107e157600080fd5b6102c65a03f115156107f257600080fd5b505050604051805190509050919050565b600080823b9050600081119150509190505600a165627a7a72305820ef3c6c95f97152c15964434ad01baaa1da415b559a1268635b7357c955f04b680029a165627a7a72305820891ae66abe67d8266fe4a2d438cbe76d778ee7173129948973b778873db6f19e0029",
  "sourceMap": "321:1285:40:-;;;529:260;;;;;;;;600:23;;:::i;:::-;;;;;;;;;;;;;;;;;;582:7;;:42;;;;;;;;;;;;;;;;;;654:17;;:::i;:::-;;;;;;;;;;;;;;;;;;634:9;;:38;;;;;;;;;;;;;;;;;;700:20;;:::i;:::-;;;;;;;;;;;;;;;;;;682:7;;:39;;;;;;;;;;;;;;;;;;755:26;;:::i;:::-;;;;;;;;;;;;;;;;;;731:13;;:51;;;;;;;;;;;;;;;;;;321:1285;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "321:1285:40:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;494:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;795:809:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;436:24:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;796:272:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;466:22:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:281:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:22:40;;;;;;;;;;;;;:::o;494:28::-;;;;;;;;;;;;;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;;;;;;68:84;:::o;795:809:40:-;869:21;1025:7;926:4;:25;;;120:32:31;;;;;;;;;;;;;;;;;;;979:7:40;;;;;;;;;;;926:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;902:86;;998:3;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1039:4;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1025:25;;1061:4;:11;;;1073:4;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;120:32:31;;;;;;;;;;;;;;;;;;;1127:3:40;1061:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1141:3;:20;;;1162:4;1168:3;1173;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1202:4;1141:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:3;:21;;;1240:9;;;;;;;;;;;1218:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:3;:21;;;1310:7;;;;;;;;;;;1288:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1361:3;:21;;;1383:13;;;;;;;;;;;1361:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:3;:20;;;1462:4;1468:3;1473;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:3;:24;;;1536:5;1543:3;1548;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:3;1587:10;;795:809;;;;;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103;:::o;436:24:40:-;;;;;;;;;;;;;:::o;796:272:37:-;898:14;924:20;966:7;975:6;983:18;947:55;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:78:37;;1012:27;1032:5;1012:27;;;;;;;;;;;;;;;;;;;;;;1056:5;1049:12;;796:272;;;;;;:::o;176:157::-;246:19;284:42;296:7;305:6;323:1;313:12;;;;;;;;;;;;;;;;;;;;;;;;;;;284:11;:42::i;:::-;277:49;;176:157;;;;:::o;466:22:40:-;;;;;;;;;;;;;:::o;339:281:37:-;435:19;466:25;518:7;527:6;535:18;494:60;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;466:88:37;;564:27;584:5;564:27;;;;;;;;;;;;;;;;;;;;;;608:5;601:12;;339:281;;;;;;:::o;626:164::-;702:14;735:48;753:7;762:6;780:1;770:12;;;;;;;;;;;;;;;;;;;;;;;;;;;735:17;:48::i;:::-;728:55;;626:164;;;;:::o;321:1285:40:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o",
  "source": "pragma solidity 0.4.18;\n\nimport \"../evmscript/EVMScriptRegistry.sol\";\n\nimport \"../evmscript/executors/CallsScript.sol\";\nimport \"../evmscript/executors/DelegateScript.sol\";\nimport \"../evmscript/executors/DeployDelegateScript.sol\";\n\nimport \"./AppProxyFactory.sol\";\nimport \"../kernel/Kernel.sol\";\nimport \"../acl/ACL.sol\";\n\n\ncontract EVMScriptRegistryFactory is AppProxyFactory, EVMScriptRegistryConstants {\n    address public baseReg;\n    address public baseCalls;\n    address public baseDel;\n    address public baseDeployDel;\n\n    function EVMScriptRegistryFactory() public {\n        baseReg = address(new EVMScriptRegistry());\n        baseCalls = address(new CallsScript());\n        baseDel = address(new DelegateScript());\n        baseDeployDel = address(new DeployDelegateScript());\n    }\n\n    function newEVMScriptRegistry(Kernel _dao, address _root) public returns (EVMScriptRegistry reg) {\n        reg = EVMScriptRegistry(_dao.newPinnedAppInstance(EVMSCRIPT_REGISTRY_APP_ID, baseReg));\n        reg.initialize();\n\n        ACL acl = ACL(_dao.acl());\n\n        _dao.setApp(_dao.APP_ADDR_NAMESPACE(), EVMSCRIPT_REGISTRY_APP_ID, reg);\n        acl.createPermission(this, reg, reg.REGISTRY_MANAGER_ROLE(), this);\n\n        reg.addScriptExecutor(baseCalls);     // spec 1 = CallsScript\n        reg.addScriptExecutor(baseDel);       // spec 2 = DelegateScript\n        reg.addScriptExecutor(baseDeployDel); // spec 3 = DeployDelegateScript\n\n        acl.revokePermission(this, reg, reg.REGISTRY_MANAGER_ROLE());\n        acl.setPermissionManager(_root, reg, reg.REGISTRY_MANAGER_ROLE());\n\n        return reg;\n    }\n}\n",
  "sourcePath": "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol",
  "ast": {
    "attributes": {
      "absolutePath": "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol",
      "exportedSymbols": {
        "EVMScriptRegistryFactory": [
          9500
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "0.4",
            ".18"
          ]
        },
        "id": 9350,
        "name": "PragmaDirective",
        "src": "0:23:40"
      },
      {
        "attributes": {
          "SourceUnit": 7711,
          "absolutePath": "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol",
          "file": "../evmscript/EVMScriptRegistry.sol",
          "scope": 9501,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 9351,
        "name": "ImportDirective",
        "src": "25:44:40"
      },
      {
        "attributes": {
          "SourceUnit": 8382,
          "absolutePath": "@aragon/os/contracts/evmscript/executors/CallsScript.sol",
          "file": "../evmscript/executors/CallsScript.sol",
          "scope": 9501,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 9352,
        "name": "ImportDirective",
        "src": "71:48:40"
      },
      {
        "attributes": {
          "SourceUnit": 8507,
          "absolutePath": "@aragon/os/contracts/evmscript/executors/DelegateScript.sol",
          "file": "../evmscript/executors/DelegateScript.sol",
          "scope": 9501,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 9353,
        "name": "ImportDirective",
        "src": "120:51:40"
      },
      {
        "attributes": {
          "SourceUnit": 8586,
          "absolutePath": "@aragon/os/contracts/evmscript/executors/DeployDelegateScript.sol",
          "file": "../evmscript/executors/DeployDelegateScript.sol",
          "scope": 9501,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 9354,
        "name": "ImportDirective",
        "src": "172:57:40"
      },
      {
        "attributes": {
          "SourceUnit": 9081,
          "absolutePath": "@aragon/os/contracts/factory/AppProxyFactory.sol",
          "file": "./AppProxyFactory.sol",
          "scope": 9501,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 9355,
        "name": "ImportDirective",
        "src": "231:31:40"
      },
      {
        "attributes": {
          "SourceUnit": 9892,
          "absolutePath": "@aragon/os/contracts/kernel/Kernel.sol",
          "file": "../kernel/Kernel.sol",
          "scope": 9501,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 9356,
        "name": "ImportDirective",
        "src": "263:30:40"
      },
      {
        "attributes": {
          "SourceUnit": 5511,
          "absolutePath": "@aragon/os/contracts/acl/ACL.sol",
          "file": "../acl/ACL.sol",
          "scope": 9501,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 9357,
        "name": "ImportDirective",
        "src": "294:24:40"
      },
      {
        "attributes": {
          "contractDependencies": [
            7710,
            7877,
            8381,
            8506,
            8585,
            9080
          ],
          "contractKind": "contract",
          "documentation": null,
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            9500,
            7877,
            9080
          ],
          "name": "EVMScriptRegistryFactory",
          "scope": 9501
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "AppProxyFactory",
                  "referencedDeclaration": 9080,
                  "type": "contract AppProxyFactory"
                },
                "id": 9358,
                "name": "UserDefinedTypeName",
                "src": "358:15:40"
              }
            ],
            "id": 9359,
            "name": "InheritanceSpecifier",
            "src": "358:15:40"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "EVMScriptRegistryConstants",
                  "referencedDeclaration": 7877,
                  "type": "contract EVMScriptRegistryConstants"
                },
                "id": 9360,
                "name": "UserDefinedTypeName",
                "src": "375:26:40"
              }
            ],
            "id": 9361,
            "name": "InheritanceSpecifier",
            "src": "375:26:40"
          },
          {
            "attributes": {
              "constant": false,
              "name": "baseReg",
              "scope": 9500,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "address",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "address",
                  "type": "address"
                },
                "id": 9362,
                "name": "ElementaryTypeName",
                "src": "408:7:40"
              }
            ],
            "id": 9363,
            "name": "VariableDeclaration",
            "src": "408:22:40"
          },
          {
            "attributes": {
              "constant": false,
              "name": "baseCalls",
              "scope": 9500,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "address",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "address",
                  "type": "address"
                },
                "id": 9364,
                "name": "ElementaryTypeName",
                "src": "436:7:40"
              }
            ],
            "id": 9365,
            "name": "VariableDeclaration",
            "src": "436:24:40"
          },
          {
            "attributes": {
              "constant": false,
              "name": "baseDel",
              "scope": 9500,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "address",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "address",
                  "type": "address"
                },
                "id": 9366,
                "name": "ElementaryTypeName",
                "src": "466:7:40"
              }
            ],
            "id": 9367,
            "name": "VariableDeclaration",
            "src": "466:22:40"
          },
          {
            "attributes": {
              "constant": false,
              "name": "baseDeployDel",
              "scope": 9500,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "address",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "address",
                  "type": "address"
                },
                "id": 9368,
                "name": "ElementaryTypeName",
                "src": "494:7:40"
              }
            ],
            "id": 9369,
            "name": "VariableDeclaration",
            "src": "494:28:40"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "EVMScriptRegistryFactory",
              "payable": false,
              "scope": 9500,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 9370,
                "name": "ParameterList",
                "src": "562:2:40"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 9371,
                "name": "ParameterList",
                "src": "572:0:40"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9363,
                              "type": "address",
                              "value": "baseReg"
                            },
                            "id": 9372,
                            "name": "Identifier",
                            "src": "582:7:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$7710",
                                      "typeString": "contract EVMScriptRegistry"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 9373,
                                "name": "ElementaryTypeNameExpression",
                                "src": "592:7:40"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract EVMScriptRegistry",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "function () returns (contract EVMScriptRegistry)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "contractScope": null,
                                          "name": "EVMScriptRegistry",
                                          "referencedDeclaration": 7710,
                                          "type": "contract EVMScriptRegistry"
                                        },
                                        "id": 9374,
                                        "name": "UserDefinedTypeName",
                                        "src": "604:17:40"
                                      }
                                    ],
                                    "id": 9375,
                                    "name": "NewExpression",
                                    "src": "600:21:40"
                                  }
                                ],
                                "id": 9376,
                                "name": "FunctionCall",
                                "src": "600:23:40"
                              }
                            ],
                            "id": 9377,
                            "name": "FunctionCall",
                            "src": "592:32:40"
                          }
                        ],
                        "id": 9378,
                        "name": "Assignment",
                        "src": "582:42:40"
                      }
                    ],
                    "id": 9379,
                    "name": "ExpressionStatement",
                    "src": "582:42:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9365,
                              "type": "address",
                              "value": "baseCalls"
                            },
                            "id": 9380,
                            "name": "Identifier",
                            "src": "634:9:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_CallsScript_$8381",
                                      "typeString": "contract CallsScript"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 9381,
                                "name": "ElementaryTypeNameExpression",
                                "src": "646:7:40"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract CallsScript",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "function () returns (contract CallsScript)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "contractScope": null,
                                          "name": "CallsScript",
                                          "referencedDeclaration": 8381,
                                          "type": "contract CallsScript"
                                        },
                                        "id": 9382,
                                        "name": "UserDefinedTypeName",
                                        "src": "658:11:40"
                                      }
                                    ],
                                    "id": 9383,
                                    "name": "NewExpression",
                                    "src": "654:15:40"
                                  }
                                ],
                                "id": 9384,
                                "name": "FunctionCall",
                                "src": "654:17:40"
                              }
                            ],
                            "id": 9385,
                            "name": "FunctionCall",
                            "src": "646:26:40"
                          }
                        ],
                        "id": 9386,
                        "name": "Assignment",
                        "src": "634:38:40"
                      }
                    ],
                    "id": 9387,
                    "name": "ExpressionStatement",
                    "src": "634:38:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9367,
                              "type": "address",
                              "value": "baseDel"
                            },
                            "id": 9388,
                            "name": "Identifier",
                            "src": "682:7:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_DelegateScript_$8506",
                                      "typeString": "contract DelegateScript"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 9389,
                                "name": "ElementaryTypeNameExpression",
                                "src": "692:7:40"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract DelegateScript",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "function () returns (contract DelegateScript)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "contractScope": null,
                                          "name": "DelegateScript",
                                          "referencedDeclaration": 8506,
                                          "type": "contract DelegateScript"
                                        },
                                        "id": 9390,
                                        "name": "UserDefinedTypeName",
                                        "src": "704:14:40"
                                      }
                                    ],
                                    "id": 9391,
                                    "name": "NewExpression",
                                    "src": "700:18:40"
                                  }
                                ],
                                "id": 9392,
                                "name": "FunctionCall",
                                "src": "700:20:40"
                              }
                            ],
                            "id": 9393,
                            "name": "FunctionCall",
                            "src": "692:29:40"
                          }
                        ],
                        "id": 9394,
                        "name": "Assignment",
                        "src": "682:39:40"
                      }
                    ],
                    "id": 9395,
                    "name": "ExpressionStatement",
                    "src": "682:39:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9369,
                              "type": "address",
                              "value": "baseDeployDel"
                            },
                            "id": 9396,
                            "name": "Identifier",
                            "src": "731:13:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_DeployDelegateScript_$8585",
                                      "typeString": "contract DeployDelegateScript"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 9397,
                                "name": "ElementaryTypeNameExpression",
                                "src": "747:7:40"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract DeployDelegateScript",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "function () returns (contract DeployDelegateScript)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "contractScope": null,
                                          "name": "DeployDelegateScript",
                                          "referencedDeclaration": 8585,
                                          "type": "contract DeployDelegateScript"
                                        },
                                        "id": 9398,
                                        "name": "UserDefinedTypeName",
                                        "src": "759:20:40"
                                      }
                                    ],
                                    "id": 9399,
                                    "name": "NewExpression",
                                    "src": "755:24:40"
                                  }
                                ],
                                "id": 9400,
                                "name": "FunctionCall",
                                "src": "755:26:40"
                              }
                            ],
                            "id": 9401,
                            "name": "FunctionCall",
                            "src": "747:35:40"
                          }
                        ],
                        "id": 9402,
                        "name": "Assignment",
                        "src": "731:51:40"
                      }
                    ],
                    "id": 9403,
                    "name": "ExpressionStatement",
                    "src": "731:51:40"
                  }
                ],
                "id": 9404,
                "name": "Block",
                "src": "572:217:40"
              }
            ],
            "id": 9405,
            "name": "FunctionDefinition",
            "src": "529:260:40"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "newEVMScriptRegistry",
              "payable": false,
              "scope": 9500,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_dao",
                      "scope": 9499,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Kernel",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Kernel",
                          "referencedDeclaration": 9891,
                          "type": "contract Kernel"
                        },
                        "id": 9406,
                        "name": "UserDefinedTypeName",
                        "src": "825:6:40"
                      }
                    ],
                    "id": 9407,
                    "name": "VariableDeclaration",
                    "src": "825:11:40"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_root",
                      "scope": 9499,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 9408,
                        "name": "ElementaryTypeName",
                        "src": "838:7:40"
                      }
                    ],
                    "id": 9409,
                    "name": "VariableDeclaration",
                    "src": "838:13:40"
                  }
                ],
                "id": 9410,
                "name": "ParameterList",
                "src": "824:28:40"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "reg",
                      "scope": 9499,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract EVMScriptRegistry",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "EVMScriptRegistry",
                          "referencedDeclaration": 7710,
                          "type": "contract EVMScriptRegistry"
                        },
                        "id": 9411,
                        "name": "UserDefinedTypeName",
                        "src": "869:17:40"
                      }
                    ],
                    "id": 9412,
                    "name": "VariableDeclaration",
                    "src": "869:21:40"
                  }
                ],
                "id": 9413,
                "name": "ParameterList",
                "src": "868:23:40"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract EVMScriptRegistry"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9412,
                              "type": "contract EVMScriptRegistry",
                              "value": "reg"
                            },
                            "id": 9414,
                            "name": "Identifier",
                            "src": "902:3:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract EVMScriptRegistry",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_IAppProxy_$6981",
                                      "typeString": "contract IAppProxy"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7710,
                                  "type": "type(contract EVMScriptRegistry)",
                                  "value": "EVMScriptRegistry"
                                },
                                "id": 9415,
                                "name": "Identifier",
                                "src": "908:17:40"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract IAppProxy",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "newPinnedAppInstance",
                                      "referencedDeclaration": 9673,
                                      "type": "function (bytes32,address) external returns (contract IAppProxy)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9407,
                                          "type": "contract Kernel",
                                          "value": "_dao"
                                        },
                                        "id": 9416,
                                        "name": "Identifier",
                                        "src": "926:4:40"
                                      }
                                    ],
                                    "id": 9417,
                                    "name": "MemberAccess",
                                    "src": "926:25:40"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7868,
                                      "type": "bytes32",
                                      "value": "EVMSCRIPT_REGISTRY_APP_ID"
                                    },
                                    "id": 9418,
                                    "name": "Identifier",
                                    "src": "952:25:40"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9363,
                                      "type": "address",
                                      "value": "baseReg"
                                    },
                                    "id": 9419,
                                    "name": "Identifier",
                                    "src": "979:7:40"
                                  }
                                ],
                                "id": 9420,
                                "name": "FunctionCall",
                                "src": "926:61:40"
                              }
                            ],
                            "id": 9421,
                            "name": "FunctionCall",
                            "src": "908:80:40"
                          }
                        ],
                        "id": 9422,
                        "name": "Assignment",
                        "src": "902:86:40"
                      }
                    ],
                    "id": 9423,
                    "name": "ExpressionStatement",
                    "src": "902:86:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "initialize",
                              "referencedDeclaration": 7631,
                              "type": "function () external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9412,
                                  "type": "contract EVMScriptRegistry",
                                  "value": "reg"
                                },
                                "id": 9424,
                                "name": "Identifier",
                                "src": "998:3:40"
                              }
                            ],
                            "id": 9426,
                            "name": "MemberAccess",
                            "src": "998:14:40"
                          }
                        ],
                        "id": 9427,
                        "name": "FunctionCall",
                        "src": "998:16:40"
                      }
                    ],
                    "id": 9428,
                    "name": "ExpressionStatement",
                    "src": "998:16:40"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        9430
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "acl",
                          "scope": 9499,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract ACL",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "ACL",
                              "referencedDeclaration": 5510,
                              "type": "contract ACL"
                            },
                            "id": 9429,
                            "name": "UserDefinedTypeName",
                            "src": "1025:3:40"
                          }
                        ],
                        "id": 9430,
                        "name": "VariableDeclaration",
                        "src": "1025:7:40"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract ACL",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IACL_$6001",
                                  "typeString": "contract IACL"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5510,
                              "type": "type(contract ACL)",
                              "value": "ACL"
                            },
                            "id": 9431,
                            "name": "Identifier",
                            "src": "1035:3:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract IACL",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "acl",
                                  "referencedDeclaration": 9724,
                                  "type": "function () view external returns (contract IACL)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9407,
                                      "type": "contract Kernel",
                                      "value": "_dao"
                                    },
                                    "id": 9432,
                                    "name": "Identifier",
                                    "src": "1039:4:40"
                                  }
                                ],
                                "id": 9433,
                                "name": "MemberAccess",
                                "src": "1039:8:40"
                              }
                            ],
                            "id": 9434,
                            "name": "FunctionCall",
                            "src": "1039:10:40"
                          }
                        ],
                        "id": 9435,
                        "name": "FunctionCall",
                        "src": "1035:15:40"
                      }
                    ],
                    "id": 9436,
                    "name": "VariableDeclarationStatement",
                    "src": "1025:25:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_EVMScriptRegistry_$7710",
                                  "typeString": "contract EVMScriptRegistry"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setApp",
                              "referencedDeclaration": 9700,
                              "type": "function (bytes32,bytes32,address) external returns (bytes32)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9407,
                                  "type": "contract Kernel",
                                  "value": "_dao"
                                },
                                "id": 9437,
                                "name": "Identifier",
                                "src": "1061:4:40"
                              }
                            ],
                            "id": 9439,
                            "name": "MemberAccess",
                            "src": "1061:11:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "APP_ADDR_NAMESPACE",
                                  "referencedDeclaration": 9944,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9407,
                                      "type": "contract Kernel",
                                      "value": "_dao"
                                    },
                                    "id": 9440,
                                    "name": "Identifier",
                                    "src": "1073:4:40"
                                  }
                                ],
                                "id": 9441,
                                "name": "MemberAccess",
                                "src": "1073:23:40"
                              }
                            ],
                            "id": 9442,
                            "name": "FunctionCall",
                            "src": "1073:25:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7868,
                              "type": "bytes32",
                              "value": "EVMSCRIPT_REGISTRY_APP_ID"
                            },
                            "id": 9443,
                            "name": "Identifier",
                            "src": "1100:25:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9412,
                              "type": "contract EVMScriptRegistry",
                              "value": "reg"
                            },
                            "id": 9444,
                            "name": "Identifier",
                            "src": "1127:3:40"
                          }
                        ],
                        "id": 9445,
                        "name": "FunctionCall",
                        "src": "1061:70:40"
                      }
                    ],
                    "id": 9446,
                    "name": "ExpressionStatement",
                    "src": "1061:70:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$9500",
                                  "typeString": "contract EVMScriptRegistryFactory"
                                },
                                {
                                  "typeIdentifier": "t_contract$_EVMScriptRegistry_$7710",
                                  "typeString": "contract EVMScriptRegistry"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$9500",
                                  "typeString": "contract EVMScriptRegistryFactory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "createPermission",
                              "referencedDeclaration": 4583,
                              "type": "function (address,address,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9430,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 9447,
                                "name": "Identifier",
                                "src": "1141:3:40"
                              }
                            ],
                            "id": 9449,
                            "name": "MemberAccess",
                            "src": "1141:20:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12673,
                              "type": "contract EVMScriptRegistryFactory",
                              "value": "this"
                            },
                            "id": 9450,
                            "name": "Identifier",
                            "src": "1162:4:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9412,
                              "type": "contract EVMScriptRegistry",
                              "value": "reg"
                            },
                            "id": 9451,
                            "name": "Identifier",
                            "src": "1168:3:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "REGISTRY_MANAGER_ROLE",
                                  "referencedDeclaration": 7603,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9412,
                                      "type": "contract EVMScriptRegistry",
                                      "value": "reg"
                                    },
                                    "id": 9452,
                                    "name": "Identifier",
                                    "src": "1173:3:40"
                                  }
                                ],
                                "id": 9453,
                                "name": "MemberAccess",
                                "src": "1173:25:40"
                              }
                            ],
                            "id": 9454,
                            "name": "FunctionCall",
                            "src": "1173:27:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12673,
                              "type": "contract EVMScriptRegistryFactory",
                              "value": "this"
                            },
                            "id": 9455,
                            "name": "Identifier",
                            "src": "1202:4:40"
                          }
                        ],
                        "id": 9456,
                        "name": "FunctionCall",
                        "src": "1141:66:40"
                      }
                    ],
                    "id": 9457,
                    "name": "ExpressionStatement",
                    "src": "1141:66:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "addScriptExecutor",
                              "referencedDeclaration": 7650,
                              "type": "function (address) external returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9412,
                                  "type": "contract EVMScriptRegistry",
                                  "value": "reg"
                                },
                                "id": 9458,
                                "name": "Identifier",
                                "src": "1218:3:40"
                              }
                            ],
                            "id": 9460,
                            "name": "MemberAccess",
                            "src": "1218:21:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9365,
                              "type": "address",
                              "value": "baseCalls"
                            },
                            "id": 9461,
                            "name": "Identifier",
                            "src": "1240:9:40"
                          }
                        ],
                        "id": 9462,
                        "name": "FunctionCall",
                        "src": "1218:32:40"
                      }
                    ],
                    "id": 9463,
                    "name": "ExpressionStatement",
                    "src": "1218:32:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "addScriptExecutor",
                              "referencedDeclaration": 7650,
                              "type": "function (address) external returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9412,
                                  "type": "contract EVMScriptRegistry",
                                  "value": "reg"
                                },
                                "id": 9464,
                                "name": "Identifier",
                                "src": "1288:3:40"
                              }
                            ],
                            "id": 9466,
                            "name": "MemberAccess",
                            "src": "1288:21:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9367,
                              "type": "address",
                              "value": "baseDel"
                            },
                            "id": 9467,
                            "name": "Identifier",
                            "src": "1310:7:40"
                          }
                        ],
                        "id": 9468,
                        "name": "FunctionCall",
                        "src": "1288:30:40"
                      }
                    ],
                    "id": 9469,
                    "name": "ExpressionStatement",
                    "src": "1288:30:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "addScriptExecutor",
                              "referencedDeclaration": 7650,
                              "type": "function (address) external returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9412,
                                  "type": "contract EVMScriptRegistry",
                                  "value": "reg"
                                },
                                "id": 9470,
                                "name": "Identifier",
                                "src": "1361:3:40"
                              }
                            ],
                            "id": 9472,
                            "name": "MemberAccess",
                            "src": "1361:21:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9369,
                              "type": "address",
                              "value": "baseDeployDel"
                            },
                            "id": 9473,
                            "name": "Identifier",
                            "src": "1383:13:40"
                          }
                        ],
                        "id": 9474,
                        "name": "FunctionCall",
                        "src": "1361:36:40"
                      }
                    ],
                    "id": 9475,
                    "name": "ExpressionStatement",
                    "src": "1361:36:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$9500",
                                  "typeString": "contract EVMScriptRegistryFactory"
                                },
                                {
                                  "typeIdentifier": "t_contract$_EVMScriptRegistry_$7710",
                                  "typeString": "contract EVMScriptRegistry"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "revokePermission",
                              "referencedDeclaration": 4680,
                              "type": "function (address,address,bytes32) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9430,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 9476,
                                "name": "Identifier",
                                "src": "1441:3:40"
                              }
                            ],
                            "id": 9478,
                            "name": "MemberAccess",
                            "src": "1441:20:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12673,
                              "type": "contract EVMScriptRegistryFactory",
                              "value": "this"
                            },
                            "id": 9479,
                            "name": "Identifier",
                            "src": "1462:4:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9412,
                              "type": "contract EVMScriptRegistry",
                              "value": "reg"
                            },
                            "id": 9480,
                            "name": "Identifier",
                            "src": "1468:3:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "REGISTRY_MANAGER_ROLE",
                                  "referencedDeclaration": 7603,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9412,
                                      "type": "contract EVMScriptRegistry",
                                      "value": "reg"
                                    },
                                    "id": 9481,
                                    "name": "Identifier",
                                    "src": "1473:3:40"
                                  }
                                ],
                                "id": 9482,
                                "name": "MemberAccess",
                                "src": "1473:25:40"
                              }
                            ],
                            "id": 9483,
                            "name": "FunctionCall",
                            "src": "1473:27:40"
                          }
                        ],
                        "id": 9484,
                        "name": "FunctionCall",
                        "src": "1441:60:40"
                      }
                    ],
                    "id": 9485,
                    "name": "ExpressionStatement",
                    "src": "1441:60:40"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_contract$_EVMScriptRegistry_$7710",
                                  "typeString": "contract EVMScriptRegistry"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setPermissionManager",
                              "referencedDeclaration": 4700,
                              "type": "function (address,address,bytes32) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9430,
                                  "type": "contract ACL",
                                  "value": "acl"
                                },
                                "id": 9486,
                                "name": "Identifier",
                                "src": "1511:3:40"
                              }
                            ],
                            "id": 9488,
                            "name": "MemberAccess",
                            "src": "1511:24:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9409,
                              "type": "address",
                              "value": "_root"
                            },
                            "id": 9489,
                            "name": "Identifier",
                            "src": "1536:5:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9412,
                              "type": "contract EVMScriptRegistry",
                              "value": "reg"
                            },
                            "id": 9490,
                            "name": "Identifier",
                            "src": "1543:3:40"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "REGISTRY_MANAGER_ROLE",
                                  "referencedDeclaration": 7603,
                                  "type": "function () view external returns (bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9412,
                                      "type": "contract EVMScriptRegistry",
                                      "value": "reg"
                                    },
                                    "id": 9491,
                                    "name": "Identifier",
                                    "src": "1548:3:40"
                                  }
                                ],
                                "id": 9492,
                                "name": "MemberAccess",
                                "src": "1548:25:40"
                              }
                            ],
                            "id": 9493,
                            "name": "FunctionCall",
                            "src": "1548:27:40"
                          }
                        ],
                        "id": 9494,
                        "name": "FunctionCall",
                        "src": "1511:65:40"
                      }
                    ],
                    "id": 9495,
                    "name": "ExpressionStatement",
                    "src": "1511:65:40"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 9413
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 9412,
                          "type": "contract EVMScriptRegistry",
                          "value": "reg"
                        },
                        "id": 9496,
                        "name": "Identifier",
                        "src": "1594:3:40"
                      }
                    ],
                    "id": 9497,
                    "name": "Return",
                    "src": "1587:10:40"
                  }
                ],
                "id": 9498,
                "name": "Block",
                "src": "892:712:40"
              }
            ],
            "id": 9499,
            "name": "FunctionDefinition",
            "src": "795:809:40"
          }
        ],
        "id": 9500,
        "name": "ContractDefinition",
        "src": "321:1285:40"
      }
    ],
    "id": 9501,
    "name": "SourceUnit",
    "src": "0:1607:40"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-14T08:41:25.096Z"
}