{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentArchived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "componentName",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentType",
          "name": "componentType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "componentAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "registryAddress",
          "type": "address"
        }
      ],
      "name": "LogComponentCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentPaused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "componentName",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentType",
          "name": "componentType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "componentAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentResumed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentState",
          "name": "stateOld",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentState",
          "name": "stateNew",
          "type": "uint8"
        }
      ],
      "name": "LogComponentStateChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentSuspended",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentUnpaused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolBundleCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isMatching",
          "type": "bool"
        }
      ],
      "name": "LogRiskpoolBundleMatchesPolicy",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "collateralAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isSecured",
          "type": "bool"
        }
      ],
      "name": "LogRiskpoolCollateralLocked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "collateralAmount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolCollateralReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "riskpoolAddress",
          "type": "address"
        }
      ],
      "name": "LogRiskpoolCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolPayoutProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolPremiumProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DEFAULT_FILTER_DATA_STRUCTURE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "FULL_COLLATERALIZATION_LEVEL",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "activeBundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "approvalCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "archiveCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "riskpoolId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "enum IBundle.BundleState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "filter",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "capital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lockedCapital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "balance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBundle.Bundle",
          "name": "bundle",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "enum IPolicy.ApplicationState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "premiumAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sumInsuredAmount",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPolicy.Application",
          "name": "application",
          "type": "tuple"
        }
      ],
      "name": "bundleMatchesApplication",
      "outputs": [
        {
          "internalType": "bool",
          "name": "isMatching",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "bundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "burnBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "closeBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "collateralAmount",
          "type": "uint256"
        }
      ],
      "name": "collateralizePolicy",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "filter",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "initialAmount",
          "type": "uint256"
        }
      ],
      "name": "createBundle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "declineCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "defundBundle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "netAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "fundBundle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "netAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "getActiveBundleId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "getBundle",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "riskpoolId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "enum IBundle.BundleState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "filter",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "capital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lockedCapital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "balance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBundle.Bundle",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCapacity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCapital",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCollateralizationLevel",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getErc20Token",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFilterDataStructure",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFullCollateralizationLevel",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMaximumNumberOfActiveBundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "maximumNumberOfActiveBundles",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getName",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRegistry",
      "outputs": [
        {
          "internalType": "contract IRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getState",
      "outputs": [
        {
          "internalType": "enum IComponent.ComponentState",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getSumOfSumInsuredCap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTotalValueLocked",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getType",
      "outputs": [
        {
          "internalType": "enum IComponent.ComponentType",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getWallet",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isOracle",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isProduct",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isRiskpool",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "lockBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pauseCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "processPolicyPayout",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "processPolicyPremium",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proposalCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "releasePolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "resumeCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "setId",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "maximumNumberOfActiveBundles",
          "type": "uint256"
        }
      ],
      "name": "setMaximumNumberOfActiveBundles",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "suspendCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "unlockBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpauseCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "13": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
    "18": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC721/IERC721.sol",
    "22": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol",
    "26": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/introspection/IERC165.sol",
    "29": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Component.sol",
    "30": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol",
    "33": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IRiskpool.sol",
    "36": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Riskpool.sol",
    "37": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IAccess.sol",
    "39": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IComponentEvents.sol",
    "4": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/access/Ownable.sol",
    "44": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol",
    "46": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IComponentOwnerService.sol",
    "47": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceOperatorService.sol",
    "48": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
    "49": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IOracleService.sol",
    "50": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IProductService.sol",
    "51": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IRiskpoolService.sol",
    "53": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/tokens/IBundleToken.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Riskpool.sol",
    "exportedSymbols": {
      "Component": [
        25407
      ],
      "Context": [
        24074
      ],
      "IAccess": [
        21938
      ],
      "IBundle": [
        20491
      ],
      "IBundleToken": [
        24052
      ],
      "IComponent": [
        22099
      ],
      "IComponentEvents": [
        22419
      ],
      "IComponentOwnerService": [
        23478
      ],
      "IERC165": [
        27203
      ],
      "IERC20": [
        18510
      ],
      "IERC721": [
        23745
      ],
      "IInstanceOperatorService": [
        23629
      ],
      "IInstanceService": [
        22849
      ],
      "IOracleService": [
        23755
      ],
      "IPolicy": [
        20837
      ],
      "IPool": [
        21652
      ],
      "IProductService": [
        23900
      ],
      "IRegistry": [
        21750
      ],
      "IRiskpool": [
        22366
      ],
      "IRiskpoolService": [
        24006
      ],
      "ITreasury": [
        23443
      ],
      "Ownable": [
        20950
      ],
      "Riskpool": [
        27141
      ]
    },
    "id": 27142,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 26412,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "40:22:36"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IRiskpool.sol",
        "file": "./IRiskpool.sol",
        "id": 26413,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 27142,
        "sourceUnit": 22367,
        "src": "66:25:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Component.sol",
        "file": "./Component.sol",
        "id": 26414,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 27142,
        "sourceUnit": 25408,
        "src": "93:25:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IBundle.sol",
        "file": "../modules/IBundle.sol",
        "id": 26415,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 27142,
        "sourceUnit": 20492,
        "src": "122:32:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPolicy.sol",
        "file": "../modules/IPolicy.sol",
        "id": 26416,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 27142,
        "sourceUnit": 20838,
        "src": "156:32:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
        "file": "../services/IInstanceService.sol",
        "id": 26417,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 27142,
        "sourceUnit": 22850,
        "src": "190:42:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IRiskpoolService.sol",
        "file": "../services/IRiskpoolService.sol",
        "id": 26418,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 27142,
        "sourceUnit": 24007,
        "src": "234:42:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC721/IERC721.sol",
        "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol",
        "id": 26419,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 27142,
        "sourceUnit": 23746,
        "src": "280:58:36",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 26420,
              "name": "IRiskpool",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 22366,
              "src": "378:9:36"
            },
            "id": 26421,
            "nodeType": "InheritanceSpecifier",
            "src": "378:9:36"
          },
          {
            "baseName": {
              "id": 26422,
              "name": "Component",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 25407,
              "src": "395:9:36"
            },
            "id": 26423,
            "nodeType": "InheritanceSpecifier",
            "src": "395:9:36"
          }
        ],
        "contractDependencies": [
          20950,
          22099,
          22366,
          22419,
          24074,
          25407
        ],
        "contractKind": "contract",
        "fullyImplemented": false,
        "id": 27141,
        "linearizedBaseContracts": [
          27141,
          25407,
          20950,
          24074,
          22419,
          22366,
          22099
        ],
        "name": "Riskpool",
        "nameLocation": "360:8:36",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "45fe1c6d",
            "id": 26428,
            "mutability": "constant",
            "name": "FULL_COLLATERALIZATION_LEVEL",
            "nameLocation": "604:28:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "580:61:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26424,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "580:7:36",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "commonType": {
                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000"
              },
              "id": 26427,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "hexValue": "3130",
                "id": 26425,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "635:2:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "BinaryOperation",
              "operator": "**",
              "rightExpression": {
                "hexValue": "3138",
                "id": 26426,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "639:2:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_18_by_1",
                  "typeString": "int_const 18"
                },
                "value": "18"
              },
              "src": "635:6:36",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "7893c7bc",
            "id": 26431,
            "mutability": "constant",
            "name": "DEFAULT_FILTER_DATA_STRUCTURE",
            "nameLocation": "671:29:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "648:57:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 26429,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "648:6:36",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "",
              "id": 26430,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "703:2:36",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                "typeString": "literal_string \"\""
              },
              "value": ""
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 26434,
            "mutability": "mutable",
            "name": "_instanceService",
            "nameLocation": "740:16:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "714:42:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IInstanceService_$22849",
              "typeString": "contract IInstanceService"
            },
            "typeName": {
              "id": 26433,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 26432,
                "name": "IInstanceService",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 22849,
                "src": "714:16:36"
              },
              "referencedDeclaration": 22849,
              "src": "714:16:36",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IInstanceService_$22849",
                "typeString": "contract IInstanceService"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 26437,
            "mutability": "mutable",
            "name": "_riskpoolService",
            "nameLocation": "790:16:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "764:42:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
              "typeString": "contract IRiskpoolService"
            },
            "typeName": {
              "id": 26436,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 26435,
                "name": "IRiskpoolService",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 24006,
                "src": "764:16:36"
              },
              "referencedDeclaration": 24006,
              "src": "764:16:36",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                "typeString": "contract IRiskpoolService"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 26440,
            "mutability": "mutable",
            "name": "_bundleToken",
            "nameLocation": "830:12:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "813:29:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IERC721_$23745",
              "typeString": "contract IERC721"
            },
            "typeName": {
              "id": 26439,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 26438,
                "name": "IERC721",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 23745,
                "src": "813:7:36"
              },
              "referencedDeclaration": 23745,
              "src": "813:7:36",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IERC721_$23745",
                "typeString": "contract IERC721"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 26443,
            "mutability": "mutable",
            "name": "_bundleIds",
            "nameLocation": "935:10:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "915:30:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 26441,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "915:7:36",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 26442,
              "nodeType": "ArrayTypeName",
              "src": "915:10:36",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 26445,
            "mutability": "mutable",
            "name": "_wallet",
            "nameLocation": "970:7:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "954:23:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 26444,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "954:7:36",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 26447,
            "mutability": "mutable",
            "name": "_erc20Token",
            "nameLocation": "1000:11:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "984:27:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 26446,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "984:7:36",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 26449,
            "mutability": "mutable",
            "name": "_collateralization",
            "nameLocation": "1034:18:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "1018:34:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26448,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1018:7:36",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 26451,
            "mutability": "mutable",
            "name": "_sumOfSumInsuredCap",
            "nameLocation": "1075:19:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "1059:35:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26450,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1059:7:36",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 26453,
            "mutability": "mutable",
            "name": "_maxNumberOfActiveBundles",
            "nameLocation": "1117:25:36",
            "nodeType": "VariableDeclaration",
            "scope": 27141,
            "src": "1101:41:36",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 26452,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1101:7:36",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 26466,
              "nodeType": "Block",
              "src": "1169:151:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 26461,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 26456,
                            "name": "_msgSender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24064,
                            "src": "1202:10:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 26457,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1202:12:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "506f6f6c",
                              "id": 26459,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1238:6:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f",
                                "typeString": "literal_string \"Pool\""
                              },
                              "value": "Pool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f",
                                "typeString": "literal_string \"Pool\""
                              }
                            ],
                            "id": 26458,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25406,
                            "src": "1218:19:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 26460,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1218:27:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1202:43:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030313a4143434553535f44454e494544",
                        "id": 26462,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1260:29:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4",
                          "typeString": "literal_string \"ERROR:RPL-001:ACCESS_DENIED\""
                        },
                        "value": "ERROR:RPL-001:ACCESS_DENIED"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4",
                          "typeString": "literal_string \"ERROR:RPL-001:ACCESS_DENIED\""
                        }
                      ],
                      "id": 26455,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1180:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 26463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1180:120:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26464,
                  "nodeType": "ExpressionStatement",
                  "src": "1180:120:36"
                },
                {
                  "id": 26465,
                  "nodeType": "PlaceholderStatement",
                  "src": "1311:1:36"
                }
              ]
            },
            "id": 26467,
            "name": "onlyPool",
            "nameLocation": "1160:8:36",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 26454,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1169:0:36"
            },
            "src": "1151:169:36",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 26498,
              "nodeType": "Block",
              "src": "1371:287:36",
              "statements": [
                {
                  "assignments": [
                    26475
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26475,
                      "mutability": "mutable",
                      "name": "bundle",
                      "nameLocation": "1404:6:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 26498,
                      "src": "1382:28:36",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Bundle_$20407_memory_ptr",
                        "typeString": "struct IBundle.Bundle"
                      },
                      "typeName": {
                        "id": 26474,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 26473,
                          "name": "IBundle.Bundle",
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 20407,
                          "src": "1382:14:36"
                        },
                        "referencedDeclaration": 20407,
                        "src": "1382:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bundle_$20407_storage_ptr",
                          "typeString": "struct IBundle.Bundle"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26480,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 26478,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26469,
                        "src": "1440:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26476,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "1413:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$22849",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 26477,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22748,
                      "src": "1413:26:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$20407_memory_ptr_$",
                        "typeString": "function (uint256) view external returns (struct IBundle.Bundle memory)"
                      }
                    },
                    "id": 26479,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1413:36:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$20407_memory_ptr",
                      "typeString": "struct IBundle.Bundle memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1382:67:36"
                },
                {
                  "assignments": [
                    26482
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26482,
                      "mutability": "mutable",
                      "name": "bundleOwner",
                      "nameLocation": "1468:11:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 26498,
                      "src": "1460:19:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 26481,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1460:7:36",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26488,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 26485,
                          "name": "bundle",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26475,
                          "src": "1503:6:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bundle_$20407_memory_ptr",
                            "typeString": "struct IBundle.Bundle memory"
                          }
                        },
                        "id": 26486,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "tokenId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 20391,
                        "src": "1503:14:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26483,
                        "name": "_bundleToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26440,
                        "src": "1482:12:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC721_$23745",
                          "typeString": "contract IERC721"
                        }
                      },
                      "id": 26484,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "ownerOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23678,
                      "src": "1482:20:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view external returns (address)"
                      }
                    },
                    "id": 26487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1482:36:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1460:58:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 26493,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 26490,
                            "name": "_msgSender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 24064,
                            "src": "1553:10:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 26491,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1553:12:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 26492,
                          "name": "bundleOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26482,
                          "src": "1569:11:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1553:27:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e4552",
                        "id": 26494,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1595:32:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22",
                          "typeString": "literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""
                        },
                        "value": "ERROR:BUC-001:NOT_BUNDLE_OWNER"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22",
                          "typeString": "literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""
                        }
                      ],
                      "id": 26489,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1531:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 26495,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1531:107:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26496,
                  "nodeType": "ExpressionStatement",
                  "src": "1531:107:36"
                },
                {
                  "id": 26497,
                  "nodeType": "PlaceholderStatement",
                  "src": "1649:1:36"
                }
              ]
            },
            "id": 26499,
            "name": "onlyBundleOwner",
            "nameLocation": "1337:15:36",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 26470,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26469,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1361:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26499,
                  "src": "1353:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26468,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1353:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1352:18:36"
            },
            "src": "1328:330:36",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 26585,
              "nodeType": "Block",
              "src": "1926:656:36",
              "statements": [
                {
                  "expression": {
                    "id": 26522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26520,
                      "name": "_collateralization",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26449,
                      "src": "1938:18:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26521,
                      "name": "collateralization",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26503,
                      "src": "1959:17:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1938:38:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26523,
                  "nodeType": "ExpressionStatement",
                  "src": "1938:38:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 26527,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 26525,
                          "name": "sumOfSumInsuredCap",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26505,
                          "src": "1997:18:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 26526,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2019:1:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1997:23:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245445f4341505f5a45524f",
                        "id": 26528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2022:43:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992",
                          "typeString": "literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""
                        },
                        "value": "ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992",
                          "typeString": "literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""
                        }
                      ],
                      "id": 26524,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1989:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 26529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1989:77:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26530,
                  "nodeType": "ExpressionStatement",
                  "src": "1989:77:36"
                },
                {
                  "expression": {
                    "id": 26533,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26531,
                      "name": "_sumOfSumInsuredCap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26451,
                      "src": "2077:19:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26532,
                      "name": "sumOfSumInsuredCap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26505,
                      "src": "2099:18:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2077:40:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26534,
                  "nodeType": "ExpressionStatement",
                  "src": "2077:40:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 26541,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 26536,
                          "name": "erc20Token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26507,
                          "src": "2138:10:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 26539,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2160:1:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 26538,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2152:7:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 26537,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2152:7:36",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 26540,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2152:10:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2138:24:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f",
                        "id": 26542,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2164:34:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6",
                          "typeString": "literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""
                        },
                        "value": "ERROR:RPL-003:ERC20_ADDRESS_ZERO"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6",
                          "typeString": "literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""
                        }
                      ],
                      "id": 26535,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2130:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 26543,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2130:69:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26544,
                  "nodeType": "ExpressionStatement",
                  "src": "2130:69:36"
                },
                {
                  "expression": {
                    "id": 26547,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26545,
                      "name": "_erc20Token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26447,
                      "src": "2210:11:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26546,
                      "name": "erc20Token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26507,
                      "src": "2224:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2210:24:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26548,
                  "nodeType": "ExpressionStatement",
                  "src": "2210:24:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 26555,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 26550,
                          "name": "wallet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26509,
                          "src": "2255:6:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 26553,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2273:1:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 26552,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2265:7:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 26551,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2265:7:36",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 26554,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2265:10:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2255:20:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45524f",
                        "id": 26556,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2277:35:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a",
                          "typeString": "literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""
                        },
                        "value": "ERROR:RPL-004:WALLET_ADDRESS_ZERO"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a",
                          "typeString": "literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""
                        }
                      ],
                      "id": 26549,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2247:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 26557,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2247:66:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26558,
                  "nodeType": "ExpressionStatement",
                  "src": "2247:66:36"
                },
                {
                  "expression": {
                    "id": 26561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26559,
                      "name": "_wallet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26445,
                      "src": "2324:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 26560,
                      "name": "wallet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26509,
                      "src": "2334:6:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2324:16:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 26562,
                  "nodeType": "ExpressionStatement",
                  "src": "2324:16:36"
                },
                {
                  "expression": {
                    "id": 26569,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26563,
                      "name": "_instanceService",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26434,
                      "src": "2353:16:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IInstanceService_$22849",
                        "typeString": "contract IInstanceService"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "496e7374616e636553657276696365",
                              "id": 26566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2409:17:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52",
                                "typeString": "literal_string \"InstanceService\""
                              },
                              "value": "InstanceService"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52",
                                "typeString": "literal_string \"InstanceService\""
                              }
                            ],
                            "id": 26565,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25406,
                            "src": "2389:19:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 26567,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2389:38:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 26564,
                        "name": "IInstanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22849,
                        "src": "2372:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IInstanceService_$22849_$",
                          "typeString": "type(contract IInstanceService)"
                        }
                      },
                      "id": 26568,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2372:56:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IInstanceService_$22849",
                        "typeString": "contract IInstanceService"
                      }
                    },
                    "src": "2353:75:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IInstanceService_$22849",
                      "typeString": "contract IInstanceService"
                    }
                  },
                  "id": 26570,
                  "nodeType": "ExpressionStatement",
                  "src": "2353:75:36"
                },
                {
                  "expression": {
                    "id": 26577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26571,
                      "name": "_riskpoolService",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26437,
                      "src": "2440:16:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                        "typeString": "contract IRiskpoolService"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "5269736b706f6f6c53657276696365",
                              "id": 26574,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2496:17:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a",
                                "typeString": "literal_string \"RiskpoolService\""
                              },
                              "value": "RiskpoolService"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a",
                                "typeString": "literal_string \"RiskpoolService\""
                              }
                            ],
                            "id": 26573,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25406,
                            "src": "2476:19:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 26575,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2476:38:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 26572,
                        "name": "IRiskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24006,
                        "src": "2459:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IRiskpoolService_$24006_$",
                          "typeString": "type(contract IRiskpoolService)"
                        }
                      },
                      "id": 26576,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2459:56:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                        "typeString": "contract IRiskpoolService"
                      }
                    },
                    "src": "2440:75:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                      "typeString": "contract IRiskpoolService"
                    }
                  },
                  "id": 26578,
                  "nodeType": "ExpressionStatement",
                  "src": "2440:75:36"
                },
                {
                  "expression": {
                    "id": 26583,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26579,
                      "name": "_bundleToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26440,
                      "src": "2526:12:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC721_$23745",
                        "typeString": "contract IERC721"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 26580,
                          "name": "_instanceService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26434,
                          "src": "2541:16:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IInstanceService_$22849",
                            "typeString": "contract IInstanceService"
                          }
                        },
                        "id": 26581,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getBundleToken",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22735,
                        "src": "2541:31:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IBundleToken_$24052_$",
                          "typeString": "function () view external returns (contract IBundleToken)"
                        }
                      },
                      "id": 26582,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2541:33:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IBundleToken_$24052",
                        "typeString": "contract IBundleToken"
                      }
                    },
                    "src": "2526:48:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC721_$23745",
                      "typeString": "contract IERC721"
                    }
                  },
                  "id": 26584,
                  "nodeType": "ExpressionStatement",
                  "src": "2526:48:36"
                }
              ]
            },
            "id": 26586,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 26514,
                    "name": "name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26501,
                    "src": "1881:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "expression": {
                      "id": 26515,
                      "name": "ComponentType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22002,
                      "src": "1887:13:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_ComponentType_$22002_$",
                        "typeString": "type(enum IComponent.ComponentType)"
                      }
                    },
                    "id": 26516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Riskpool",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22001,
                    "src": "1887:22:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ComponentType_$22002",
                      "typeString": "enum IComponent.ComponentType"
                    }
                  },
                  {
                    "id": 26517,
                    "name": "registry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26511,
                    "src": "1911:8:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 26518,
                "modifierName": {
                  "id": 26513,
                  "name": "Component",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 25407,
                  "src": "1871:9:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "1871:49:36"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 26512,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26501,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "1696:4:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26586,
                  "src": "1688:12:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 26500,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1688:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26503,
                  "mutability": "mutable",
                  "name": "collateralization",
                  "nameLocation": "1719:17:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26586,
                  "src": "1711:25:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26502,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1711:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26505,
                  "mutability": "mutable",
                  "name": "sumOfSumInsuredCap",
                  "nameLocation": "1755:18:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26586,
                  "src": "1747:26:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26504,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1747:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26507,
                  "mutability": "mutable",
                  "name": "erc20Token",
                  "nameLocation": "1792:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26586,
                  "src": "1784:18:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 26506,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1784:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26509,
                  "mutability": "mutable",
                  "name": "wallet",
                  "nameLocation": "1821:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26586,
                  "src": "1813:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 26508,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1813:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26511,
                  "mutability": "mutable",
                  "name": "registry",
                  "nameLocation": "1846:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26586,
                  "src": "1838:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 26510,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1838:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1677:184:36"
            },
            "returnParameters": {
              "id": 26519,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1926:0:36"
            },
            "scope": 27141,
            "src": "1666:916:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              25326
            ],
            "body": {
              "id": 26599,
              "nodeType": "Block",
              "src": "2641:179:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26593,
                        "name": "_wallet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26445,
                        "src": "2700:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 26594,
                        "name": "_erc20Token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26447,
                        "src": "2722:11:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 26595,
                        "name": "_collateralization",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26449,
                        "src": "2749:18:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26596,
                        "name": "_sumOfSumInsuredCap",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26451,
                        "src": "2782:19:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26590,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26437,
                        "src": "2652:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 26592,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "registerRiskpool",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23913,
                      "src": "2652:33:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256,uint256) external"
                      }
                    },
                    "id": 26597,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2652:160:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26598,
                  "nodeType": "ExpressionStatement",
                  "src": "2652:160:36"
                }
              ]
            },
            "id": 26600,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterPropose",
            "nameLocation": "2599:13:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26588,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2624:8:36"
            },
            "parameters": {
              "id": 26587,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2612:2:36"
            },
            "returnParameters": {
              "id": 26589,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2641:0:36"
            },
            "scope": 27141,
            "src": "2590:230:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              22203
            ],
            "body": {
              "id": 26635,
              "nodeType": "Block",
              "src": "2968:243:36",
              "statements": [
                {
                  "assignments": [
                    26611
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26611,
                      "mutability": "mutable",
                      "name": "bundleOwner",
                      "nameLocation": "2987:11:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 26635,
                      "src": "2979:19:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 26610,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2979:7:36",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26614,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26612,
                      "name": "_msgSender",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 24064,
                      "src": "3001:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 26613,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3001:12:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2979:34:36"
                },
                {
                  "expression": {
                    "id": 26622,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26615,
                      "name": "bundleId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26608,
                      "src": "3024:8:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 26618,
                          "name": "bundleOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26611,
                          "src": "3065:11:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "id": 26619,
                          "name": "filter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26602,
                          "src": "3078:6:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        {
                          "id": 26620,
                          "name": "initialAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26604,
                          "src": "3086:13:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 26616,
                          "name": "_riskpoolService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26437,
                          "src": "3035:16:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                            "typeString": "contract IRiskpoolService"
                          }
                        },
                        "id": 26617,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "createBundle",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23924,
                        "src": "3035:29:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (address,bytes memory,uint256) external returns (uint256)"
                        }
                      },
                      "id": 26621,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3035:65:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3024:76:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26623,
                  "nodeType": "ExpressionStatement",
                  "src": "3024:76:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26627,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26608,
                        "src": "3127:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26624,
                        "name": "_bundleIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26443,
                        "src": "3111:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                          "typeString": "uint256[] storage ref"
                        }
                      },
                      "id": 26626,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "src": "3111:15:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$",
                        "typeString": "function (uint256[] storage pointer,uint256)"
                      }
                    },
                    "id": 26628,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3111:25:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26629,
                  "nodeType": "ExpressionStatement",
                  "src": "3111:25:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 26631,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26608,
                        "src": "3179:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26632,
                        "name": "initialAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26604,
                        "src": "3189:13:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26630,
                      "name": "LogRiskpoolBundleCreated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22162,
                      "src": "3154:24:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 26633,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3154:49:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26634,
                  "nodeType": "EmitStatement",
                  "src": "3149:54:36"
                }
              ]
            },
            "functionSelector": "7888a2ff",
            "id": 26636,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createBundle",
            "nameLocation": "2837:12:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26606,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2919:8:36"
            },
            "parameters": {
              "id": 26605,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26602,
                  "mutability": "mutable",
                  "name": "filter",
                  "nameLocation": "2863:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26636,
                  "src": "2850:19:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 26601,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2850:5:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26604,
                  "mutability": "mutable",
                  "name": "initialAmount",
                  "nameLocation": "2879:13:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26636,
                  "src": "2871:21:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26603,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2871:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2849:44:36"
            },
            "returnParameters": {
              "id": 26609,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26608,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "2953:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26636,
                  "src": "2945:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26607,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2945:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2944:18:36"
            },
            "scope": 27141,
            "src": "2828:383:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22212
            ],
            "body": {
              "id": 26657,
              "nodeType": "Block",
              "src": "3377:76:36",
              "statements": [
                {
                  "expression": {
                    "id": 26655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26649,
                      "name": "netAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26647,
                      "src": "3388:9:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 26652,
                          "name": "bundleId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26638,
                          "src": "3428:8:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 26653,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26640,
                          "src": "3438:6:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 26650,
                          "name": "_riskpoolService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26437,
                          "src": "3400:16:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                            "typeString": "contract IRiskpoolService"
                          }
                        },
                        "id": 26651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "fundBundle",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23933,
                        "src": "3400:27:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) external returns (uint256)"
                        }
                      },
                      "id": 26654,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3400:45:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3388:57:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26656,
                  "nodeType": "ExpressionStatement",
                  "src": "3388:57:36"
                }
              ]
            },
            "functionSelector": "89002da5",
            "id": 26658,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 26644,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26638,
                    "src": "3326:8:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 26645,
                "modifierName": {
                  "id": 26643,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26499,
                  "src": "3310:15:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "3310:25:36"
              }
            ],
            "name": "fundBundle",
            "nameLocation": "3228:10:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26642,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3292:8:36"
            },
            "parameters": {
              "id": 26641,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26638,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3247:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26658,
                  "src": "3239:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26637,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3239:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26640,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3265:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26658,
                  "src": "3257:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26639,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3257:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3238:34:36"
            },
            "returnParameters": {
              "id": 26648,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26647,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3361:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26658,
                  "src": "3353:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26646,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3353:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3352:19:36"
            },
            "scope": 27141,
            "src": "3219:234:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22221
            ],
            "body": {
              "id": 26679,
              "nodeType": "Block",
              "src": "3620:78:36",
              "statements": [
                {
                  "expression": {
                    "id": 26677,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26671,
                      "name": "netAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26669,
                      "src": "3631:9:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 26674,
                          "name": "bundleId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26660,
                          "src": "3673:8:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 26675,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26662,
                          "src": "3683:6:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 26672,
                          "name": "_riskpoolService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26437,
                          "src": "3643:16:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                            "typeString": "contract IRiskpoolService"
                          }
                        },
                        "id": 26673,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "defundBundle",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 23942,
                        "src": "3643:29:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) external returns (uint256)"
                        }
                      },
                      "id": 26676,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3643:47:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3631:59:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 26678,
                  "nodeType": "ExpressionStatement",
                  "src": "3631:59:36"
                }
              ]
            },
            "functionSelector": "36153f3a",
            "id": 26680,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 26666,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26660,
                    "src": "3569:8:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 26667,
                "modifierName": {
                  "id": 26665,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26499,
                  "src": "3553:15:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "3553:25:36"
              }
            ],
            "name": "defundBundle",
            "nameLocation": "3470:12:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26664,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3535:8:36"
            },
            "parameters": {
              "id": 26663,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26660,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3491:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26680,
                  "src": "3483:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26659,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3483:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26662,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3509:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26680,
                  "src": "3501:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26661,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3501:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3482:34:36"
            },
            "returnParameters": {
              "id": 26670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26669,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3604:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26680,
                  "src": "3596:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26668,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3596:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3595:19:36"
            },
            "scope": 27141,
            "src": "3461:237:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22226
            ],
            "body": {
              "id": 26695,
              "nodeType": "Block",
              "src": "3811:56:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26692,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26682,
                        "src": "3850:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26689,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26437,
                        "src": "3822:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 26691,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "lockBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23947,
                      "src": "3822:27:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 26693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3822:37:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26694,
                  "nodeType": "ExpressionStatement",
                  "src": "3822:37:36"
                }
              ]
            },
            "functionSelector": "a17030d5",
            "id": 26696,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 26686,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26682,
                    "src": "3796:8:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 26687,
                "modifierName": {
                  "id": 26685,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26499,
                  "src": "3780:15:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "3780:25:36"
              }
            ],
            "name": "lockBundle",
            "nameLocation": "3715:10:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26684,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3762:8:36"
            },
            "parameters": {
              "id": 26683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26682,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3734:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26696,
                  "src": "3726:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26681,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3726:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3725:18:36"
            },
            "returnParameters": {
              "id": 26688,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3811:0:36"
            },
            "scope": 27141,
            "src": "3706:161:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22231
            ],
            "body": {
              "id": 26711,
              "nodeType": "Block",
              "src": "3982:58:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26708,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26698,
                        "src": "4023:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26705,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26437,
                        "src": "3993:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 26707,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "unlockBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23952,
                      "src": "3993:29:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 26709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3993:39:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26710,
                  "nodeType": "ExpressionStatement",
                  "src": "3993:39:36"
                }
              ]
            },
            "functionSelector": "316c5348",
            "id": 26712,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 26702,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26698,
                    "src": "3967:8:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 26703,
                "modifierName": {
                  "id": 26701,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26499,
                  "src": "3951:15:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "3951:25:36"
              }
            ],
            "name": "unlockBundle",
            "nameLocation": "3884:12:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26700,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3933:8:36"
            },
            "parameters": {
              "id": 26699,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26698,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3905:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26712,
                  "src": "3897:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26697,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3897:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3896:18:36"
            },
            "returnParameters": {
              "id": 26704,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3982:0:36"
            },
            "scope": 27141,
            "src": "3875:165:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22236
            ],
            "body": {
              "id": 26727,
              "nodeType": "Block",
              "src": "4154:57:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26724,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26714,
                        "src": "4194:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26721,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26437,
                        "src": "4165:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 26723,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23957,
                      "src": "4165:28:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 26725,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4165:38:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26726,
                  "nodeType": "ExpressionStatement",
                  "src": "4165:38:36"
                }
              ]
            },
            "functionSelector": "8c483e5a",
            "id": 26728,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 26718,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26714,
                    "src": "4139:8:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 26719,
                "modifierName": {
                  "id": 26717,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26499,
                  "src": "4123:15:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "4123:25:36"
              }
            ],
            "name": "closeBundle",
            "nameLocation": "4057:11:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26716,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4105:8:36"
            },
            "parameters": {
              "id": 26715,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26714,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "4077:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26728,
                  "src": "4069:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26713,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4069:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4068:18:36"
            },
            "returnParameters": {
              "id": 26720,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4154:0:36"
            },
            "scope": 27141,
            "src": "4048:163:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22241
            ],
            "body": {
              "id": 26743,
              "nodeType": "Block",
              "src": "4324:56:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26740,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26730,
                        "src": "4363:8:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26737,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26437,
                        "src": "4335:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 26739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "burnBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23962,
                      "src": "4335:27:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 26741,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4335:37:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26742,
                  "nodeType": "ExpressionStatement",
                  "src": "4335:37:36"
                }
              ]
            },
            "functionSelector": "587e59d0",
            "id": 26744,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 26734,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26730,
                    "src": "4309:8:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 26735,
                "modifierName": {
                  "id": 26733,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26499,
                  "src": "4293:15:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "4293:25:36"
              }
            ],
            "name": "burnBundle",
            "nameLocation": "4228:10:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26732,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4275:8:36"
            },
            "parameters": {
              "id": 26731,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26730,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "4247:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26744,
                  "src": "4239:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4239:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4238:18:36"
            },
            "returnParameters": {
              "id": 26736,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4324:0:36"
            },
            "scope": 27141,
            "src": "4219:161:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22250
            ],
            "body": {
              "id": 26769,
              "nodeType": "Block",
              "src": "4545:154:36",
              "statements": [
                {
                  "expression": {
                    "id": 26761,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 26756,
                      "name": "success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26754,
                      "src": "4556:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 26758,
                          "name": "processId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26746,
                          "src": "4582:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 26759,
                          "name": "collateralAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26748,
                          "src": "4593:16:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 26757,
                        "name": "_lockCollateral",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27119,
                        "src": "4566:15:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) returns (bool)"
                        }
                      },
                      "id": 26760,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4566:44:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4556:54:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 26762,
                  "nodeType": "ExpressionStatement",
                  "src": "4556:54:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 26764,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26746,
                        "src": "4654:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 26765,
                        "name": "collateralAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26748,
                        "src": "4665:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26766,
                        "name": "success",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26754,
                        "src": "4683:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 26763,
                      "name": "LogRiskpoolCollateralLocked",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22176,
                      "src": "4626:27:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,uint256,bool)"
                      }
                    },
                    "id": 26767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4626:65:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26768,
                  "nodeType": "EmitStatement",
                  "src": "4621:70:36"
                }
              ]
            },
            "functionSelector": "890fbf78",
            "id": 26770,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 26752,
                "modifierName": {
                  "id": 26751,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26467,
                  "src": "4499:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "4499:8:36"
              }
            ],
            "name": "collateralizePolicy",
            "nameLocation": "4397:19:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26750,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4481:8:36"
            },
            "parameters": {
              "id": 26749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26746,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4425:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26770,
                  "src": "4417:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 26745,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4417:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26748,
                  "mutability": "mutable",
                  "name": "collateralAmount",
                  "nameLocation": "4444:16:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26770,
                  "src": "4436:24:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26747,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4436:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4416:45:36"
            },
            "returnParameters": {
              "id": 26755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26754,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "4530:7:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26770,
                  "src": "4525:12:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 26753,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4525:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4524:14:36"
            },
            "scope": 27141,
            "src": "4388:311:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22264
            ],
            "body": {
              "id": 26790,
              "nodeType": "Block",
              "src": "4821:113:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26781,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26772,
                        "src": "4847:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 26782,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26774,
                        "src": "4858:6:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26780,
                      "name": "_processPayout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27133,
                      "src": "4832:14:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 26783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4832:33:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26784,
                  "nodeType": "ExpressionStatement",
                  "src": "4832:33:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 26786,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26772,
                        "src": "4908:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 26787,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26774,
                        "src": "4919:6:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26785,
                      "name": "LogRiskpoolPayoutProcessed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22188,
                      "src": "4881:26:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 26788,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4881:45:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26789,
                  "nodeType": "EmitStatement",
                  "src": "4876:50:36"
                }
              ]
            },
            "functionSelector": "82558906",
            "id": 26791,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 26778,
                "modifierName": {
                  "id": 26777,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26467,
                  "src": "4807:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "4807:8:36"
              }
            ],
            "name": "processPolicyPayout",
            "nameLocation": "4716:19:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26776,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4789:8:36"
            },
            "parameters": {
              "id": 26775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26772,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4744:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26791,
                  "src": "4736:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 26771,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4736:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26774,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "4763:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26791,
                  "src": "4755:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26773,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4755:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4735:35:36"
            },
            "returnParameters": {
              "id": 26779,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4821:0:36"
            },
            "scope": 27141,
            "src": "4707:227:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22257
            ],
            "body": {
              "id": 26811,
              "nodeType": "Block",
              "src": "5057:115:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26802,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26793,
                        "src": "5084:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 26803,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26795,
                        "src": "5095:6:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26801,
                      "name": "_processPremium",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27126,
                      "src": "5068:15:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 26804,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5068:34:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26805,
                  "nodeType": "ExpressionStatement",
                  "src": "5068:34:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 26807,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26793,
                        "src": "5146:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 26808,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26795,
                        "src": "5157:6:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26806,
                      "name": "LogRiskpoolPremiumProcessed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22182,
                      "src": "5118:27:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 26809,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5118:46:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26810,
                  "nodeType": "EmitStatement",
                  "src": "5113:51:36"
                }
              ]
            },
            "functionSelector": "3629c3c4",
            "id": 26812,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 26799,
                "modifierName": {
                  "id": 26798,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26467,
                  "src": "5043:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "5043:8:36"
              }
            ],
            "name": "processPolicyPremium",
            "nameLocation": "4951:20:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26797,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5025:8:36"
            },
            "parameters": {
              "id": 26796,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26793,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4980:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26812,
                  "src": "4972:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 26792,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4972:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 26795,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "4999:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26812,
                  "src": "4991:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26794,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4991:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4971:35:36"
            },
            "returnParameters": {
              "id": 26800,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5057:0:36"
            },
            "scope": 27141,
            "src": "4942:230:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22269
            ],
            "body": {
              "id": 26831,
              "nodeType": "Block",
              "src": "5273:149:36",
              "statements": [
                {
                  "assignments": [
                    26821
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26821,
                      "mutability": "mutable",
                      "name": "collateralAmount",
                      "nameLocation": "5292:16:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 26831,
                      "src": "5284:24:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26820,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5284:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26825,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 26823,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26814,
                        "src": "5330:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 26822,
                      "name": "_releaseCollateral",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27140,
                      "src": "5311:18:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) returns (uint256)"
                      }
                    },
                    "id": 26824,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5311:29:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5284:56:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 26827,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26814,
                        "src": "5386:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 26828,
                        "name": "collateralAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26821,
                        "src": "5397:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 26826,
                      "name": "LogRiskpoolCollateralReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 22194,
                      "src": "5356:29:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 26829,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5356:58:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26830,
                  "nodeType": "EmitStatement",
                  "src": "5351:63:36"
                }
              ]
            },
            "functionSelector": "c3004c86",
            "id": 26832,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 26818,
                "modifierName": {
                  "id": 26817,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26467,
                  "src": "5259:8:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "5259:8:36"
              }
            ],
            "name": "releasePolicy",
            "nameLocation": "5189:13:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26816,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5241:8:36"
            },
            "parameters": {
              "id": 26815,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26814,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "5211:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26832,
                  "src": "5203:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 26813,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5203:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5202:19:36"
            },
            "returnParameters": {
              "id": 26819,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5273:0:36"
            },
            "scope": 27141,
            "src": "5180:242:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22360
            ],
            "body": {
              "id": 26852,
              "nodeType": "Block",
              "src": "5560:148:36",
              "statements": [
                {
                  "assignments": [
                    26841
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26841,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "5579:10:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 26852,
                      "src": "5571:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26840,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5571:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26844,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26842,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "5592:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 26843,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5592:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5571:28:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26848,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26841,
                        "src": "5659:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26849,
                        "name": "maximumNumberOfActiveBundles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26834,
                        "src": "5671:28:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26845,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26437,
                        "src": "5610:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 26847,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setMaximumNumberOfActiveBundles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24005,
                      "src": "5610:48:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256) external"
                      }
                    },
                    "id": 26850,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5610:90:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26851,
                  "nodeType": "ExpressionStatement",
                  "src": "5610:90:36"
                }
              ]
            },
            "functionSelector": "652028e5",
            "id": 26853,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 26838,
                "modifierName": {
                  "id": 26837,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 20869,
                  "src": "5545:9:36"
                },
                "nodeType": "ModifierInvocation",
                "src": "5545:9:36"
              }
            ],
            "name": "setMaximumNumberOfActiveBundles",
            "nameLocation": "5439:31:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26836,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5527:8:36"
            },
            "parameters": {
              "id": 26835,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26834,
                  "mutability": "mutable",
                  "name": "maximumNumberOfActiveBundles",
                  "nameLocation": "5479:28:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26853,
                  "src": "5471:36:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26833,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5471:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5470:38:36"
            },
            "returnParameters": {
              "id": 26839,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5560:0:36"
            },
            "scope": 27141,
            "src": "5430:278:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22365
            ],
            "body": {
              "id": 26869,
              "nodeType": "Block",
              "src": "5849:125:36",
              "statements": [
                {
                  "assignments": [
                    26860
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26860,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "5868:10:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 26869,
                      "src": "5860:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26859,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5860:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26863,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26861,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "5881:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 26862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5881:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5860:28:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26866,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26860,
                        "src": "5955:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26864,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "5906:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$22849",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 26865,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getMaximumNumberOfActiveBundles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22729,
                      "src": "5906:48:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 26867,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5906:60:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26858,
                  "id": 26868,
                  "nodeType": "Return",
                  "src": "5899:67:36"
                }
              ]
            },
            "functionSelector": "7f3b6980",
            "id": 26870,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getMaximumNumberOfActiveBundles",
            "nameLocation": "5725:31:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26855,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5780:8:36"
            },
            "parameters": {
              "id": 26854,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5756:2:36"
            },
            "returnParameters": {
              "id": 26858,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26857,
                  "mutability": "mutable",
                  "name": "maximumNumberOfActiveBundles",
                  "nameLocation": "5814:28:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26870,
                  "src": "5806:36:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26856,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5806:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5805:38:36"
            },
            "scope": 27141,
            "src": "5716:258:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22325
            ],
            "body": {
              "id": 26878,
              "nodeType": "Block",
              "src": "6041:33:36",
              "statements": [
                {
                  "expression": {
                    "id": 26876,
                    "name": "_wallet",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26445,
                    "src": "6059:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 26875,
                  "id": 26877,
                  "nodeType": "Return",
                  "src": "6052:14:36"
                }
              ]
            },
            "functionSelector": "13299604",
            "id": 26879,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getWallet",
            "nameLocation": "5991:9:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26872,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6015:8:36"
            },
            "parameters": {
              "id": 26871,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6000:2:36"
            },
            "returnParameters": {
              "id": 26875,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26874,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 26879,
                  "src": "6032:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 26873,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6032:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6031:9:36"
            },
            "scope": 27141,
            "src": "5982:92:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22330
            ],
            "body": {
              "id": 26887,
              "nodeType": "Block",
              "src": "6145:37:36",
              "statements": [
                {
                  "expression": {
                    "id": 26885,
                    "name": "_erc20Token",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26447,
                    "src": "6163:11:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 26884,
                  "id": 26886,
                  "nodeType": "Return",
                  "src": "6156:18:36"
                }
              ]
            },
            "functionSelector": "feb1824b",
            "id": 26888,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getErc20Token",
            "nameLocation": "6091:13:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26881,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6119:8:36"
            },
            "parameters": {
              "id": 26880,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6104:2:36"
            },
            "returnParameters": {
              "id": 26884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26883,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 26888,
                  "src": "6136:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 26882,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6136:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6135:9:36"
            },
            "scope": 27141,
            "src": "6082:100:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22335
            ],
            "body": {
              "id": 26896,
              "nodeType": "Block",
              "src": "6262:45:36",
              "statements": [
                {
                  "expression": {
                    "id": 26894,
                    "name": "_sumOfSumInsuredCap",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26451,
                    "src": "6280:19:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26893,
                  "id": 26895,
                  "nodeType": "Return",
                  "src": "6273:26:36"
                }
              ]
            },
            "functionSelector": "a18aa128",
            "id": 26897,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getSumOfSumInsuredCap",
            "nameLocation": "6199:21:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26890,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6235:8:36"
            },
            "parameters": {
              "id": 26889,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6220:2:36"
            },
            "returnParameters": {
              "id": 26893,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26892,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 26897,
                  "src": "6253:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26891,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6253:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6252:9:36"
            },
            "scope": 27141,
            "src": "6190:117:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22279
            ],
            "body": {
              "id": 26905,
              "nodeType": "Block",
              "src": "6395:54:36",
              "statements": [
                {
                  "expression": {
                    "id": 26903,
                    "name": "FULL_COLLATERALIZATION_LEVEL",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26428,
                    "src": "6413:28:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26902,
                  "id": 26904,
                  "nodeType": "Return",
                  "src": "6406:35:36"
                }
              ]
            },
            "functionSelector": "f1d354d0",
            "id": 26906,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFullCollateralizationLevel",
            "nameLocation": "6324:29:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26899,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6368:8:36"
            },
            "parameters": {
              "id": 26898,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6353:2:36"
            },
            "returnParameters": {
              "id": 26902,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26901,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 26906,
                  "src": "6386:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26900,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6386:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6385:9:36"
            },
            "scope": 27141,
            "src": "6315:134:36",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22274
            ],
            "body": {
              "id": 26914,
              "nodeType": "Block",
              "src": "6533:44:36",
              "statements": [
                {
                  "expression": {
                    "id": 26912,
                    "name": "_collateralization",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26449,
                    "src": "6551:18:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26911,
                  "id": 26913,
                  "nodeType": "Return",
                  "src": "6544:25:36"
                }
              ]
            },
            "functionSelector": "54afef63",
            "id": 26915,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCollateralizationLevel",
            "nameLocation": "6466:25:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26908,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6506:8:36"
            },
            "parameters": {
              "id": 26907,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6491:2:36"
            },
            "returnParameters": {
              "id": 26911,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26910,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 26915,
                  "src": "6524:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26909,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6524:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6523:9:36"
            },
            "scope": 27141,
            "src": "6457:120:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22300
            ],
            "body": {
              "id": 26924,
              "nodeType": "Block",
              "src": "6642:43:36",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "id": 26921,
                      "name": "_bundleIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26443,
                      "src": "6660:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 26922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "6660:17:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26920,
                  "id": 26923,
                  "nodeType": "Return",
                  "src": "6653:24:36"
                }
              ]
            },
            "functionSelector": "18442e63",
            "id": 26925,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bundles",
            "nameLocation": "6594:7:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26917,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6611:8:36"
            },
            "parameters": {
              "id": 26916,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6601:2:36"
            },
            "returnParameters": {
              "id": 26920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26919,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 26925,
                  "src": "6633:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26918,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6633:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6632:9:36"
            },
            "scope": 27141,
            "src": "6585:100:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22308
            ],
            "body": {
              "id": 26953,
              "nodeType": "Block",
              "src": "6777:194:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 26938,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 26935,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26927,
                          "src": "6796:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "expression": {
                            "id": 26936,
                            "name": "_bundleIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26443,
                            "src": "6802:10:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                              "typeString": "uint256[] storage ref"
                            }
                          },
                          "id": 26937,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "6802:17:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6796:23:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c41524745",
                        "id": 26939,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6821:38:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac",
                          "typeString": "literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""
                        },
                        "value": "ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac",
                          "typeString": "literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""
                        }
                      ],
                      "id": 26934,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6788:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 26940,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6788:72:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26941,
                  "nodeType": "ExpressionStatement",
                  "src": "6788:72:36"
                },
                {
                  "assignments": [
                    26943
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26943,
                      "mutability": "mutable",
                      "name": "bundleIdx",
                      "nameLocation": "6881:9:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 26953,
                      "src": "6873:17:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26942,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6873:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26947,
                  "initialValue": {
                    "baseExpression": {
                      "id": 26944,
                      "name": "_bundleIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26443,
                      "src": "6893:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 26946,
                    "indexExpression": {
                      "id": 26945,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26927,
                      "src": "6904:3:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6893:15:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6873:35:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26950,
                        "name": "bundleIdx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26943,
                        "src": "6953:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26948,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "6926:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$22849",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 26949,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22748,
                      "src": "6926:26:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$20407_memory_ptr_$",
                        "typeString": "function (uint256) view external returns (struct IBundle.Bundle memory)"
                      }
                    },
                    "id": 26951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6926:37:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$20407_memory_ptr",
                      "typeString": "struct IBundle.Bundle memory"
                    }
                  },
                  "functionReturnParameters": 26933,
                  "id": 26952,
                  "nodeType": "Return",
                  "src": "6919:44:36"
                }
              ]
            },
            "functionSelector": "2d0821b7",
            "id": 26954,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBundle",
            "nameLocation": "6702:9:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26929,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6732:8:36"
            },
            "parameters": {
              "id": 26928,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26927,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "6720:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 26954,
                  "src": "6712:11:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26926,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6712:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6711:13:36"
            },
            "returnParameters": {
              "id": 26933,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26932,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 26954,
                  "src": "6754:21:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bundle_$20407_memory_ptr",
                    "typeString": "struct IBundle.Bundle"
                  },
                  "typeName": {
                    "id": 26931,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 26930,
                      "name": "IBundle.Bundle",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20407,
                      "src": "6754:14:36"
                    },
                    "referencedDeclaration": 20407,
                    "src": "6754:14:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$20407_storage_ptr",
                      "typeString": "struct IBundle.Bundle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6753:23:36"
            },
            "scope": 27141,
            "src": "6693:278:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22313
            ],
            "body": {
              "id": 26970,
              "nodeType": "Block",
              "src": "7042:107:36",
              "statements": [
                {
                  "assignments": [
                    26961
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26961,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7061:10:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 26970,
                      "src": "7053:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26960,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7053:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26964,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26962,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "7074:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 26963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7074:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7053:28:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26967,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26961,
                        "src": "7130:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26965,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "7099:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$22849",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 26966,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "activeBundles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22713,
                      "src": "7099:30:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 26968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7099:42:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26959,
                  "id": 26969,
                  "nodeType": "Return",
                  "src": "7092:49:36"
                }
              ]
            },
            "functionSelector": "4101b90c",
            "id": 26971,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "activeBundles",
            "nameLocation": "6988:13:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26956,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7011:8:36"
            },
            "parameters": {
              "id": 26955,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7001:2:36"
            },
            "returnParameters": {
              "id": 26959,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26958,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 26971,
                  "src": "7033:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26957,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7033:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7032:9:36"
            },
            "scope": 27141,
            "src": "6979:170:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22320
            ],
            "body": {
              "id": 27000,
              "nodeType": "Block",
              "src": "7244:233:36",
              "statements": [
                {
                  "assignments": [
                    26980
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 26980,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7263:10:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 27000,
                      "src": "7255:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 26979,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7255:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 26983,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 26981,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "7276:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 26982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7276:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7255:28:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 26990,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 26985,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26973,
                          "src": "7302:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 26988,
                              "name": "riskpoolId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26980,
                              "src": "7339:10:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 26986,
                              "name": "_instanceService",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26434,
                              "src": "7308:16:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IInstanceService_$22849",
                                "typeString": "contract IInstanceService"
                              }
                            },
                            "id": 26987,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "activeBundles",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22713,
                            "src": "7308:30:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view external returns (uint256)"
                            }
                          },
                          "id": 26989,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7308:42:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7302:48:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e4445585f544f4f5f4c41524745",
                        "id": 26991,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7352:45:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9",
                          "typeString": "literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""
                        },
                        "value": "ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9",
                          "typeString": "literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""
                        }
                      ],
                      "id": 26984,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7294:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 26992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7294:104:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 26993,
                  "nodeType": "ExpressionStatement",
                  "src": "7294:104:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 26996,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26980,
                        "src": "7453:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 26997,
                        "name": "idx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26973,
                        "src": "7465:3:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 26994,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "7418:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$22849",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 26995,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getActiveBundleId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22722,
                      "src": "7418:34:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 26998,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7418:51:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 26978,
                  "id": 26999,
                  "nodeType": "Return",
                  "src": "7411:58:36"
                }
              ]
            },
            "functionSelector": "0676cb0e",
            "id": 27001,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getActiveBundleId",
            "nameLocation": "7166:17:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 26975,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7204:8:36"
            },
            "parameters": {
              "id": 26974,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26973,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "7192:3:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27001,
                  "src": "7184:11:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26972,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7184:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7183:13:36"
            },
            "returnParameters": {
              "id": 26978,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 26977,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "7234:8:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27001,
                  "src": "7226:16:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 26976,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7226:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7225:18:36"
            },
            "scope": 27141,
            "src": "7157:320:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22295
            ],
            "body": {
              "id": 27009,
              "nodeType": "Block",
              "src": "7565:55:36",
              "statements": [
                {
                  "expression": {
                    "id": 27007,
                    "name": "DEFAULT_FILTER_DATA_STRUCTURE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 26431,
                    "src": "7583:29:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 27006,
                  "id": 27008,
                  "nodeType": "Return",
                  "src": "7576:36:36"
                }
              ]
            },
            "functionSelector": "3dcdde17",
            "id": 27010,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFilterDataStructure",
            "nameLocation": "7494:22:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 27003,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7528:8:36"
            },
            "parameters": {
              "id": 27002,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7516:2:36"
            },
            "returnParameters": {
              "id": 27006,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27005,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27010,
                  "src": "7550:13:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 27004,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7550:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7549:15:36"
            },
            "scope": 27141,
            "src": "7485:135:36",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              22340
            ],
            "body": {
              "id": 27026,
              "nodeType": "Block",
              "src": "7688:104:36",
              "statements": [
                {
                  "assignments": [
                    27017
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27017,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7707:10:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 27026,
                      "src": "7699:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27016,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7699:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27020,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 27018,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "7720:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 27019,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7720:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7699:28:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 27023,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27017,
                        "src": "7773:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 27021,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "7745:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$22849",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 27022,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCapital",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22685,
                      "src": "7745:27:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 27024,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7745:39:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 27015,
                  "id": 27025,
                  "nodeType": "Return",
                  "src": "7738:46:36"
                }
              ]
            },
            "functionSelector": "e0032383",
            "id": 27027,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCapital",
            "nameLocation": "7637:10:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 27012,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7657:8:36"
            },
            "parameters": {
              "id": 27011,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7647:2:36"
            },
            "returnParameters": {
              "id": 27015,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27014,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27027,
                  "src": "7679:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27013,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7679:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7678:9:36"
            },
            "scope": 27141,
            "src": "7628:164:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22345
            ],
            "body": {
              "id": 27043,
              "nodeType": "Block",
              "src": "7869:113:36",
              "statements": [
                {
                  "assignments": [
                    27034
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27034,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7888:10:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 27043,
                      "src": "7880:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27033,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7880:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27037,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 27035,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "7901:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 27036,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7901:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7880:28:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 27040,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27034,
                        "src": "7963:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 27038,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "7926:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$22849",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 27039,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getTotalValueLocked",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22692,
                      "src": "7926:36:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 27041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7926:48:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 27032,
                  "id": 27042,
                  "nodeType": "Return",
                  "src": "7919:55:36"
                }
              ]
            },
            "functionSelector": "b26025aa",
            "id": 27044,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTotalValueLocked",
            "nameLocation": "7809:19:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 27029,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7838:8:36"
            },
            "parameters": {
              "id": 27028,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7828:2:36"
            },
            "returnParameters": {
              "id": 27032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27031,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27044,
                  "src": "7860:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27030,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7860:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7859:9:36"
            },
            "scope": 27141,
            "src": "7800:182:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22350
            ],
            "body": {
              "id": 27060,
              "nodeType": "Block",
              "src": "8051:105:36",
              "statements": [
                {
                  "assignments": [
                    27051
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27051,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "8070:10:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 27060,
                      "src": "8062:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27050,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8062:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27054,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 27052,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "8083:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 27053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8083:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8062:28:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 27057,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27051,
                        "src": "8137:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 27055,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "8108:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$22849",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 27056,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCapacity",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22699,
                      "src": "8108:28:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 27058,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8108:40:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 27049,
                  "id": 27059,
                  "nodeType": "Return",
                  "src": "8101:47:36"
                }
              ]
            },
            "functionSelector": "c40000d4",
            "id": 27061,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCapacity",
            "nameLocation": "7999:11:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 27046,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8020:8:36"
            },
            "parameters": {
              "id": 27045,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8010:2:36"
            },
            "returnParameters": {
              "id": 27049,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27048,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27061,
                  "src": "8042:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27047,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8042:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8041:9:36"
            },
            "scope": 27141,
            "src": "7990:166:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22355
            ],
            "body": {
              "id": 27077,
              "nodeType": "Block",
              "src": "8224:104:36",
              "statements": [
                {
                  "assignments": [
                    27068
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27068,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "8243:10:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 27077,
                      "src": "8235:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27067,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8235:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27071,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 27069,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "8256:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 27070,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8256:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8235:28:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 27074,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27068,
                        "src": "8309:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 27072,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 26434,
                        "src": "8281:16:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$22849",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 27073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22706,
                      "src": "8281:27:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 27075,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8281:39:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 27066,
                  "id": 27076,
                  "nodeType": "Return",
                  "src": "8274:46:36"
                }
              ]
            },
            "functionSelector": "12065fe0",
            "id": 27078,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBalance",
            "nameLocation": "8173:10:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 27063,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8193:8:36"
            },
            "parameters": {
              "id": 27062,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8183:2:36"
            },
            "returnParameters": {
              "id": 27066,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27065,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 27078,
                  "src": "8215:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27064,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8215:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8214:9:36"
            },
            "scope": 27141,
            "src": "8164:164:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              22290
            ],
            "functionSelector": "86c71288",
            "id": 27090,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "bundleMatchesApplication",
            "nameLocation": "8345:24:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 27086,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8473:8:36"
            },
            "parameters": {
              "id": 27085,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27081,
                  "mutability": "mutable",
                  "name": "bundle",
                  "nameLocation": "8402:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27090,
                  "src": "8380:28:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bundle_$20407_memory_ptr",
                    "typeString": "struct IBundle.Bundle"
                  },
                  "typeName": {
                    "id": 27080,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27079,
                      "name": "IBundle.Bundle",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20407,
                      "src": "8380:14:36"
                    },
                    "referencedDeclaration": 20407,
                    "src": "8380:14:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$20407_storage_ptr",
                      "typeString": "struct IBundle.Bundle"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 27084,
                  "mutability": "mutable",
                  "name": "application",
                  "nameLocation": "8447:11:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27090,
                  "src": "8420:38:36",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Application_$20666_memory_ptr",
                    "typeString": "struct IPolicy.Application"
                  },
                  "typeName": {
                    "id": 27083,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 27082,
                      "name": "IPolicy.Application",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20666,
                      "src": "8420:19:36"
                    },
                    "referencedDeclaration": 20666,
                    "src": "8420:19:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Application_$20666_storage_ptr",
                      "typeString": "struct IPolicy.Application"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8369:96:36"
            },
            "returnParameters": {
              "id": 27089,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27088,
                  "mutability": "mutable",
                  "name": "isMatching",
                  "nameLocation": "8508:10:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27090,
                  "src": "8503:15:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 27087,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8503:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8502:17:36"
            },
            "scope": 27141,
            "src": "8336:184:36",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              25354
            ],
            "body": {
              "id": 27109,
              "nodeType": "Block",
              "src": "8576:204:36",
              "statements": [
                {
                  "assignments": [
                    27095
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 27095,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "8596:10:36",
                      "nodeType": "VariableDeclaration",
                      "scope": 27109,
                      "src": "8588:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 27094,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8588:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 27098,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 27096,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25160,
                      "src": "8609:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 27097,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8609:7:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8588:28:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 27105,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 27102,
                              "name": "riskpoolId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 27095,
                              "src": "8681:10:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 27100,
                              "name": "_instanceService",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26434,
                              "src": "8649:16:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IInstanceService_$22849",
                                "typeString": "contract IInstanceService"
                              }
                            },
                            "id": 27101,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "unburntBundles",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22755,
                            "src": "8649:31:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view external returns (uint256)"
                            }
                          },
                          "id": 27103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8649:43:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 27104,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8696:1:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8649:48:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255524e545f42554e444c4553",
                        "id": 27106,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8713:44:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a",
                          "typeString": "literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""
                        },
                        "value": "ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a",
                          "typeString": "literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""
                        }
                      ],
                      "id": 27099,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8627:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 27107,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8627:145:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 27108,
                  "nodeType": "ExpressionStatement",
                  "src": "8627:145:36"
                }
              ]
            },
            "id": 27110,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterArchive",
            "nameLocation": "8537:13:36",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 27092,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8567:8:36"
            },
            "parameters": {
              "id": 27091,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8550:2:36"
            },
            "returnParameters": {
              "id": 27093,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8576:0:36"
            },
            "scope": 27141,
            "src": "8528:252:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 27119,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_lockCollateral",
            "nameLocation": "8797:15:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27115,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27112,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "8821:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27119,
                  "src": "8813:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 27111,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8813:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 27114,
                  "mutability": "mutable",
                  "name": "collateralAmount",
                  "nameLocation": "8840:16:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27119,
                  "src": "8832:24:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27113,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8832:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8812:45:36"
            },
            "returnParameters": {
              "id": 27118,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27117,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "8888:7:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27119,
                  "src": "8883:12:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 27116,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8883:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8882:14:36"
            },
            "scope": 27141,
            "src": "8788:109:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 27126,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_processPremium",
            "nameLocation": "8912:15:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27124,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27121,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "8936:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27126,
                  "src": "8928:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 27120,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8928:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 27123,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "8955:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27126,
                  "src": "8947:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27122,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8947:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8927:35:36"
            },
            "returnParameters": {
              "id": 27125,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8979:0:36"
            },
            "scope": 27141,
            "src": "8903:77:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 27133,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_processPayout",
            "nameLocation": "8995:14:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27131,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27128,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "9018:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27133,
                  "src": "9010:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 27127,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9010:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 27130,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "9037:6:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27133,
                  "src": "9029:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27129,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9029:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9009:35:36"
            },
            "returnParameters": {
              "id": 27132,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9061:0:36"
            },
            "scope": 27141,
            "src": "8986:76:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 27140,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_releaseCollateral",
            "nameLocation": "9077:18:36",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 27136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27135,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "9104:9:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27140,
                  "src": "9096:17:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 27134,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9096:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9095:19:36"
            },
            "returnParameters": {
              "id": 27139,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 27138,
                  "mutability": "mutable",
                  "name": "collateralAmount",
                  "nameLocation": "9148:16:36",
                  "nodeType": "VariableDeclaration",
                  "scope": 27140,
                  "src": "9140:24:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 27137,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9140:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9139:26:36"
            },
            "scope": 27141,
            "src": "9068:98:36",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 27142,
        "src": "342:8829:36"
      }
    ],
    "src": "40:9131:36"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "Riskpool",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [
    "etherisc/gif-interface@3b0002a/Component",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Context",
    "etherisc/gif-interface@3b0002a/IAccess",
    "etherisc/gif-interface@3b0002a/IBundleToken",
    "etherisc/gif-interface@3b0002a/IComponent",
    "etherisc/gif-interface@3b0002a/IComponentEvents",
    "etherisc/gif-interface@3b0002a/IComponentOwnerService",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC165",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC721",
    "etherisc/gif-interface@3b0002a/IInstanceOperatorService",
    "etherisc/gif-interface@3b0002a/IInstanceService",
    "etherisc/gif-interface@3b0002a/IOracleService",
    "etherisc/gif-interface@3b0002a/IProductService",
    "etherisc/gif-interface@3b0002a/IRegistry",
    "etherisc/gif-interface@3b0002a/IRiskpool",
    "etherisc/gif-interface@3b0002a/IRiskpoolService",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Ownable"
  ],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "offset": [
    342,
    9171
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "d33d7012d7c79d2a21de53ed457691326611c9a6",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IRiskpool.sol\";\nimport \"./Component.sol\";\n\nimport \"../modules/IBundle.sol\";\nimport \"../modules/IPolicy.sol\";\nimport \"../services/IInstanceService.sol\";\nimport \"../services/IRiskpoolService.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\nabstract contract Riskpool is \n    IRiskpool, \n    Component \n{    \n    // used for representation of collateralization\n    // collateralization between 0 and 1 (1=100%) \n    // value might be larger when overcollateralization\n    uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18;\n    string public constant DEFAULT_FILTER_DATA_STRUCTURE = \"\";\n\n    IInstanceService internal _instanceService; \n    IRiskpoolService internal _riskpoolService;\n    IERC721 internal _bundleToken;\n    \n    // keep track of bundles associated with this riskpool\n    uint256 [] internal _bundleIds;\n\n    address private _wallet;\n    address private _erc20Token;\n    uint256 private _collateralization;\n    uint256 private _sumOfSumInsuredCap;\n    uint256 private _maxNumberOfActiveBundles;\n\n    modifier onlyPool {\n        require(\n            _msgSender() == _getContractAddress(\"Pool\"),\n            \"ERROR:RPL-001:ACCESS_DENIED\"\n        );\n        _;\n    }\n\n    modifier onlyBundleOwner(uint256 bundleId) {\n        IBundle.Bundle memory bundle = _instanceService.getBundle(bundleId);\n        address bundleOwner = _bundleToken.ownerOf(bundle.tokenId);\n\n        require(\n            _msgSender() == bundleOwner,\n            \"ERROR:BUC-001:NOT_BUNDLE_OWNER\"\n        );\n        _;\n    }\n\n    constructor(\n        bytes32 name,\n        uint256 collateralization,\n        uint256 sumOfSumInsuredCap,\n        address erc20Token,\n        address wallet,\n        address registry\n    )\n        Component(name, ComponentType.Riskpool, registry)\n    { \n        _collateralization = collateralization;\n\n        require(sumOfSumInsuredCap != 0, \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\");\n        _sumOfSumInsuredCap = sumOfSumInsuredCap;\n\n        require(erc20Token != address(0), \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\");\n        _erc20Token = erc20Token;\n\n        require(wallet != address(0), \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\");\n        _wallet = wallet;\n\n        _instanceService = IInstanceService(_getContractAddress(\"InstanceService\")); \n        _riskpoolService = IRiskpoolService(_getContractAddress(\"RiskpoolService\"));\n        _bundleToken = _instanceService.getBundleToken();\n    }\n\n    function _afterPropose() internal override virtual {\n        _riskpoolService.registerRiskpool(\n            _wallet,\n            _erc20Token, \n            _collateralization,\n            _sumOfSumInsuredCap\n        );\n    }\n\n    function createBundle(bytes memory filter, uint256 initialAmount) \n        public virtual override\n        returns(uint256 bundleId)\n    {\n        address bundleOwner = _msgSender();\n        bundleId = _riskpoolService.createBundle(bundleOwner, filter, initialAmount);\n        _bundleIds.push(bundleId);\n\n        emit LogRiskpoolBundleCreated(bundleId, initialAmount);\n    }\n\n    function fundBundle(uint256 bundleId, uint256 amount) \n        external override\n        onlyBundleOwner(bundleId)\n        returns(uint256 netAmount)\n    {\n        netAmount = _riskpoolService.fundBundle(bundleId, amount);\n    }\n\n    function defundBundle(uint256 bundleId, uint256 amount)\n        external override\n        onlyBundleOwner(bundleId)\n        returns(uint256 netAmount)\n    {\n        netAmount = _riskpoolService.defundBundle(bundleId, amount);\n    }\n\n    function lockBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.lockBundle(bundleId);\n    }\n\n    function unlockBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.unlockBundle(bundleId);\n    }\n\n    function closeBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.closeBundle(bundleId);\n    }\n\n    function burnBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.burnBundle(bundleId);\n    }\n\n    function collateralizePolicy(bytes32 processId, uint256 collateralAmount) \n        external override\n        onlyPool\n        returns(bool success) \n    {\n        success = _lockCollateral(processId, collateralAmount);\n        emit LogRiskpoolCollateralLocked(processId, collateralAmount, success);\n    }\n\n    function processPolicyPayout(bytes32 processId, uint256 amount)\n        external override\n        onlyPool\n    {\n        _processPayout(processId, amount);\n        emit LogRiskpoolPayoutProcessed(processId, amount);\n    }\n\n    function processPolicyPremium(bytes32 processId, uint256 amount)\n        external override\n        onlyPool\n    {\n        _processPremium(processId, amount);\n        emit LogRiskpoolPremiumProcessed(processId, amount);\n    }\n\n    function releasePolicy(bytes32 processId) \n        external override\n        onlyPool\n    {\n        uint256 collateralAmount = _releaseCollateral(processId);\n        emit LogRiskpoolCollateralReleased(processId, collateralAmount);\n    }\n\n    function setMaximumNumberOfActiveBundles(uint256 maximumNumberOfActiveBundles)\n        external override\n        onlyOwner\n    {\n        uint256 riskpoolId = getId();\n        _riskpoolService.setMaximumNumberOfActiveBundles(riskpoolId, maximumNumberOfActiveBundles);\n    }\n\n    function getMaximumNumberOfActiveBundles()\n        public view override\n        returns(uint256 maximumNumberOfActiveBundles)\n    {\n        uint256 riskpoolId = getId();\n        return _instanceService.getMaximumNumberOfActiveBundles(riskpoolId);\n    }\n\n    function getWallet() public view override returns(address) {\n        return _wallet;\n    }\n\n    function getErc20Token() public view override returns(address) {\n        return _erc20Token;\n    }\n\n    function getSumOfSumInsuredCap() public view override returns (uint256) {\n        return _sumOfSumInsuredCap;\n    }\n\n    function getFullCollateralizationLevel() public pure override returns (uint256) {\n        return FULL_COLLATERALIZATION_LEVEL;\n    }\n\n    function getCollateralizationLevel() public view override returns (uint256) {\n        return _collateralization;\n    }\n\n    function bundles() public override view returns(uint256) {\n        return _bundleIds.length;\n    }\n\n    function getBundle(uint256 idx) public override view returns(IBundle.Bundle memory) {\n        require(idx < _bundleIds.length, \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\");\n\n        uint256 bundleIdx = _bundleIds[idx];\n        return _instanceService.getBundle(bundleIdx);\n    }\n\n    function activeBundles() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.activeBundles(riskpoolId);\n    }\n\n    function getActiveBundleId(uint256 idx) public override view returns(uint256 bundleId) {\n        uint256 riskpoolId = getId();\n        require(idx < _instanceService.activeBundles(riskpoolId), \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\");\n\n        return _instanceService.getActiveBundleId(riskpoolId, idx);\n    }\n\n    function getFilterDataStructure() external override pure returns(string memory) {\n        return DEFAULT_FILTER_DATA_STRUCTURE;\n    }\n\n    function getCapital() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getCapital(riskpoolId);\n    }\n\n    function getTotalValueLocked() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getTotalValueLocked(riskpoolId);\n    }\n\n    function getCapacity() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getCapacity(riskpoolId);\n    }\n\n    function getBalance() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getBalance(riskpoolId);\n    }\n\n    function bundleMatchesApplication(\n        IBundle.Bundle memory bundle, \n        IPolicy.Application memory application\n    ) public override view virtual returns(bool isMatching);\n\n    function _afterArchive() internal view override { \n        uint256 riskpoolId = getId();\n        require(\n            _instanceService.unburntBundles(riskpoolId) == 0, \n            \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\"\n            );\n    }\n\n    function _lockCollateral(bytes32 processId, uint256 collateralAmount) internal virtual returns(bool success);\n    function _processPremium(bytes32 processId, uint256 amount) internal virtual;\n    function _processPayout(bytes32 processId, uint256 amount) internal virtual;\n    function _releaseCollateral(bytes32 processId) internal virtual returns(uint256 collateralAmount);\n\n}",
  "sourceMap": "",
  "sourcePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Riskpool.sol",
  "type": "contract"
}